如何在构建 docker 实例时安装本地 rpm 文件?
How to install a local rpm file when building docker instance?
我有以下 docker 文件,我想专门安装一个在我构建 docker 实例时磁盘上可用的 rpm 文件。我对 rpm install 的调用如下所示。命令
RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm
失败。
有没有办法将本地可用的 rpm 文件安装到新的 Docker 实例?
FROM centos:latest
RUN yum -y install yum-utils
RUN yum -y install python-setuptools
RUN easy_install supervisor
RUN mkdir -p /var/log/supervisor
RUN yum -y install which
RUN yum -y install git
# Basic build dependencies.
RUN yum -y install autoconf build-essential unzip zip
# Gold linker is much faster than standard linker.
RUN yum -y install binutils
# Developer tools.
RUN yum -y install bash-completion curl emacs git man-db python-dev python-pip vim tar
RUN yum -y install gcc gcc-c++ kernel-devel make
RUN yum -y install swig
RUN yum -y install wget
RUN yum -y install python-devel
RUN yum -y install ntp
RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm
将此行放在 rpm -i
命令之前:
ADD /host/abs/path/to/chrpath-0.13-14.el7.x86_64.rpm /chrpath-0.13-14.el7.x86_64.rpm
那你就可以
RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm
假设您的 Dockerfile 位于 /opt/myproject/.
,那么首先您必须将 rpm
放入 /opt/myproject
,然后添加
Add /xyz.rpm /xyz.rpm
RUN rpm -i xyz.rpm
我的 Dockerfile 包含这两行:
[...]
ADD SRC/kernel-3.10.0-327.13.1.el7.x86_64.rpm /tmp/kernel-3.10.0-327.13.1.el7.x86_64.rpm
ADD SRC/kernel-devel-3.10.0-327.13.1.el7.x86_64.rpm /tmp/kernel-devel-3.10.0-327.13.1.el7.x86_64.rpm
[...]
构建映像过程失败并出现错误 "lstat SRC/kernel-3.10.0-327.13.1.el7.x86_64.rpm: no such file or directory"
两个 RPM 文件都在 "SRC" 文件夹中,我 运行 "docker build".
有什么问题??
谢谢。
作为其他人在这里所写内容的补充,而不是使用:
RUN rpm -i xyz.rpm
你最好这样做:
RUN yum install -y xyz.rpm
后者的优点是 (a) 检查签名,(b) 下载任何依赖项,以及 (c) 确保 YUM 知道该包。最后一点不如其他两个重要,但仍然值得。
我有以下 docker 文件,我想专门安装一个在我构建 docker 实例时磁盘上可用的 rpm 文件。我对 rpm install 的调用如下所示。命令
RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm
失败。
有没有办法将本地可用的 rpm 文件安装到新的 Docker 实例?
FROM centos:latest
RUN yum -y install yum-utils
RUN yum -y install python-setuptools
RUN easy_install supervisor
RUN mkdir -p /var/log/supervisor
RUN yum -y install which
RUN yum -y install git
# Basic build dependencies.
RUN yum -y install autoconf build-essential unzip zip
# Gold linker is much faster than standard linker.
RUN yum -y install binutils
# Developer tools.
RUN yum -y install bash-completion curl emacs git man-db python-dev python-pip vim tar
RUN yum -y install gcc gcc-c++ kernel-devel make
RUN yum -y install swig
RUN yum -y install wget
RUN yum -y install python-devel
RUN yum -y install ntp
RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm
将此行放在 rpm -i
命令之前:
ADD /host/abs/path/to/chrpath-0.13-14.el7.x86_64.rpm /chrpath-0.13-14.el7.x86_64.rpm
那你就可以
RUN rpm -i chrpath-0.13-14.el7.x86_64.rpm
假设您的 Dockerfile 位于 /opt/myproject/.
,那么首先您必须将 rpm
放入 /opt/myproject
,然后添加
Add /xyz.rpm /xyz.rpm
RUN rpm -i xyz.rpm
我的 Dockerfile 包含这两行:
[...]
ADD SRC/kernel-3.10.0-327.13.1.el7.x86_64.rpm /tmp/kernel-3.10.0-327.13.1.el7.x86_64.rpm
ADD SRC/kernel-devel-3.10.0-327.13.1.el7.x86_64.rpm /tmp/kernel-devel-3.10.0-327.13.1.el7.x86_64.rpm
[...]
构建映像过程失败并出现错误 "lstat SRC/kernel-3.10.0-327.13.1.el7.x86_64.rpm: no such file or directory"
两个 RPM 文件都在 "SRC" 文件夹中,我 运行 "docker build".
有什么问题??
谢谢。
作为其他人在这里所写内容的补充,而不是使用:
RUN rpm -i xyz.rpm
你最好这样做:
RUN yum install -y xyz.rpm
后者的优点是 (a) 检查签名,(b) 下载任何依赖项,以及 (c) 确保 YUM 知道该包。最后一点不如其他两个重要,但仍然值得。