Dockerfile 和 dpkg 命令
Dockerfile and dpkg command
我正在尝试创建一个 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 命令行之前安装依赖项(Apache、jdk、php...)是创建工作 Dockerfile 的唯一方法还是有更短的方法?
不是最优雅的但是:
#continue executing even if command fails
RUN dpkg -i vufind_3.1.1.deb || true
使用 apt 版本 1.1~exp11(自 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
在超级用户上查看此 answer 了解更多详细信息/
稍微优雅一点。
# Run both commands together
RUN dpkg -i vufind_3.1.1.deb; apt-get install -y -f
我正在尝试创建一个 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 命令行之前安装依赖项(Apache、jdk、php...)是创建工作 Dockerfile 的唯一方法还是有更短的方法?
不是最优雅的但是:
#continue executing even if command fails
RUN dpkg -i vufind_3.1.1.deb || true
使用 apt 版本 1.1~exp11(自 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
在超级用户上查看此 answer 了解更多详细信息/
稍微优雅一点。
# Run both commands together
RUN dpkg -i vufind_3.1.1.deb; apt-get install -y -f