當我嘗試構建 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
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
我嘗試構建其他 centos 映像并且構建良好,甚至嘗試了 Ubuntu 和其他隨機映像。此問題僅在此 Dockerfile 中是特定的
uj5u.com熱心網友回復:
您遇到了這個錯誤(另請參閱這個帶有修復的拉取請求)。舊版本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
使用上面的 Dockerfile:
$ time docker build -t yumtest .
[...]
Successfully built e5ae777ff3ff
Successfully tagged yumtest:latest
real 1m2.668s
user 0m0.008s
sys 0m0.015s
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/528547.html
標籤:码头工人dockerfilecentoscentos7百胜
