Dependencies Dockerfile和dpkg命令

Dependencies Dockerfile和dpkg命令,dependencies,dockerfile,dpkg,Dependencies,Dockerfile,Dpkg,我正在尝试创建Dockerfile以安装VuFind 这是我的Dockerfile: #Name of container: docker-vufind:3 # Pull base image FROM ubuntu:16.04 MAINTAINER xxx "xxx@mail.com" #Install latest patches RUN apt-get update && apt-get install -y \ && apt-get inst

我正在尝试创建Dockerfile以安装VuFind

这是我的Dockerfile:

#Name of container: docker-vufind:3

# Pull base image
FROM ubuntu:16.04
MAINTAINER xxx  "xxx@mail.com"

#Install latest patches
RUN apt-get update && apt-get install -y \
    && apt-get install -y wget 

#Obtain the package
RUN wget http://downloads.sourceforge.net/vufind/vufind_3.1.1.deb?use_mirror=osdn -O vufind_3.1.1.deb

#Install it
RUN dpkg -i vufind_3.1.1.deb

#Install VuFind's dependecies
RUN apt-get install -y -f
我在Ubuntu的bash上启动了这些命令,软件运行得很好,但似乎我无法使用Dockerfile获得相同的结果,因为dpkg命令由于缺少依赖项而失败

The command '/bin/sh -c dpkg -i vufind_3.1.1.deb' returned a non-zero code: 1

在dpkg命令行之前安装dependecies(Apache、jdk、php…)是创建工作Dockerfile的唯一方法还是更短的方法?

不是最优雅的方法,但:

#continue executing even if command fails
RUN dpkg -i vufind_3.1.1.deb || true
使用apt版本(从Ubuntu 16.04开始提供),您可以单独使用
apt
直接安装.deb文件并解决依赖关系:

apt install ./vufind_3.1.1.deb

注意
/

似乎找到了一个更干净的选择,至少对我来说是这样。由于
apt
的CLI不稳定(正如Docker构建期间警告的那样),我选择使用包
gdebi-core
,它可以调用
。deb
包及其依赖项:

sudo apt-get install gdebi-core
sudo gdebi /path/to/filename.deb

有关详细信息,请查看Superuser上的此项/

稍微优雅一点

# Run both commands together
RUN dpkg -i vufind_3.1.1.deb; apt-get install -y -f

最后一行不是没有必要吗?也就是说,apt get install-f也会安装以前尝试过的deb包。实际上,最后一行不再需要了。一切都应该在第二个命令后解决。难道没有办法在一个命令中运行
dpkg-i包。deb
具有依赖项,而不必在之后运行
apt get install-f
,这既丑陋又烦人吗?@AugustinRiedinger
dpkg
无法解决依赖项,因为它只管理包,不是存储库(如
yum
apt
),我不确定为什么删除了
apt get install-y-f
行。也许这是VuFind的更高版本所特有的。我来这里是想为wkhtmltopdf安装依赖项,因为
dpkg-I…
dpkg:依赖项问题阻止了wkhtmltox的配置:wkhtmltox依赖于fontconfig;但是:未安装程序包fontconfig,等等。行
apt get install-y-f
安装了所有依赖项。谢谢非常感谢。这是金子。它们同样的
apt
除了花哨的加载条:D之外,没有什么新东西