Jer*_*emy 3 centos yum docker centos7 dockerfile
当我尝试构建 Dockerfile 时,docker build -t agent .我的构建过程陷入了 yum 安装过程,并且在我的 Linux 和 Windows 上都没有进一步发展:
+ yum -q install -y bash bzip2-devel ca-certificates curl epel-release gcc gcc-c++ git gnutls gnutls-devel libffi-devel make ncurses-devel openssh-clients openssh-server openssl openssl-devel rsync readline-devel tar unzip wget zip zlib-devel temurin-11-jdk
Package bash-4.2.46-35.el7_9.x86_64 already installed and latest version
Package ca-certificates-2022.2.54-74.el7_9.noarch already installed and latest version
Package curl-7.29.0-59.el7_9.1.x86_64 already installed and latest version
Package 2:tar-1.26-35.el7.x86_64 already installed and latest version
Run Code Online (Sandbox Code Playgroud)
Dockerfile代码
FROM centos:7
RUN set -ex && echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' > /etc/nsswitch.conf
RUN set -ex && yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
RUN set -ex && yum -q install -y docker-ce docker-ce-cli containerd.io
# -- Install OS packages:
RUN set -ex && yum -q update -y && yum -q install -y \
bash \
bzip2-devel \
ca-certificates \
curl \
epel-release \
gcc \
gcc-c++ \
git \
gnutls \
gnutls-devel \
libffi-devel \
make \
ncurses-devel \
openssh-clients \
openssh-server \
openssl \
openssl-devel \
rsync \
readline-devel \
tar \
unzip \
wget \
zip \
zlib-devel \
temurin-11-jdk
Run Code Online (Sandbox Code Playgroud)
我尝试构建其他 centos 映像,它构建得很好,甚至尝试了 Ubuntu 和其他随机映像。这个问题仅在这个 Dockerfile 中特定
lar*_*sks 16
您遇到了这个错误(另请参阅此拉取请求及其修复)。旧版本rpm(例如 CentOS 7)包含尝试CLOEXEC在所有文件描述符上设置标志的代码。由于 Docker 对文件数量设置了很高的限制(1073741816),因此这个过程需要非常长的时间。
最简单的解决方法——如果您被迫使用像 CentOS 7 这样的旧发行版——就是在运行 yum 之前减少限制:
FROM centos:7
RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' > /etc/nsswitch.conf
RUN yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
RUN ulimit -n 1024 && yum -q install -y docker-ce docker-ce-cli containerd.io
# -- Install OS packages:
RUN ulimit -n 1024 && yum -q update -y && yum -q install -y \
bash \
bzip2-devel \
ca-certificates \
curl \
epel-release \
gcc \
gcc-c++ \
git \
gnutls \
gnutls-devel \
libffi-devel \
make \
ncurses-devel \
openssh-clients \
openssh-server \
openssl \
openssl-devel \
rsync \
readline-devel \
tar \
unzip \
wget \
zip \
zlib-devel \
temurin-11-jdk
Run Code Online (Sandbox Code Playgroud)
使用上面的 Dockerfile:
$ time docker build -t yumtest .
[...]
Successfully built e5ae777ff3ff
Successfully tagged yumtest:latest
real 1m2.668s
user 0m0.008s
sys 0m0.015s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2790 次 |
| 最近记录: |