gpt4 book ai didi

Docker build 与 Docker run 的行为不一样

转载 作者:行者123 更新时间:2023-12-05 06:12:21 26 4
gpt4 key购买 nike

我尝试使用 Archlinux 基础构建 Docker 镜像。问题是我在构建 docker 镜像和手动执行命令时没有得到相同的结果。

$ cat Dockerfile
FROM archlinux/base

RUN pacman -Suy --noconfirm --noprogressbar

$ docker build .
#1 [internal] load .dockerignore
#1 transferring context: 2B done
#1 DONE 0.3s

#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 37B done
#2 DONE 0.2s

#3 [internal] load metadata for docker.io/archlinux/base:latest
#3 DONE 0.0s

#4 [1/2] FROM docker.io/archlinux/base
#4 CACHED

#5 [2/2] RUN pacman -Suy --noconfirm --noprogressbar
#5 0.692 :: Synchronizing package databases...
#5 1.449 downloading core.db...
#5 3.139 downloading extra.db...
#5 8.344 downloading community.db...
#5 15.38 :: Starting full system upgrade...
#5 15.40 resolving dependencies...
#5 15.55 looking for conflicting packages...
#5 15.56
#5 15.56 Packages (26) archlinux-keyring-20200820-1 bash-5.0.018-1 ca-certificates-mozilla-3.56-1 curl-7.72.0-2 file-5.39-1 filesystem-2020.08.21-1 gcc-libs-10.2.0-1 glib2-2.64.5-1 glibc-2.32-3 hwids-20200813.1-1 iana-etc-20200812-1 kbd-2.3.0-2 libcap-2.42-1 libgpg-error-1.39-1 libp11-kit-0.23.21-1 libutil-linux-2.36-2 libxcrypt-4.4.17-1 linux-api-headers-5.7-1 p11-kit-0.23.21-1 pacman-mirrorlist-20200801-1 pam-1.4.0-3 pambase-20200721.1-2 sqlite-3.33.0-2 systemd-246.3-1 systemd-libs-246.3-1 util-linux-2.36-2
#5 15.56
#5 15.56 Total Download Size: 63.83 MiB
#5 15.56 Total Installed Size: 297.78 MiB
#5 15.56 Net Upgrade Size: 7.41 MiB
#5 15.56
#5 15.56 :: Proceed with installation? [Y/n]
#5 15.56 :: Retrieving packages...
#5 15.94 downloading archlinux-keyring-20200820-1-any.pkg.tar.zst...
#5 18.60 downloading linux-api-headers-5.7-1-any.pkg.tar.zst...
#5 21.09 downloading iana-etc-20200812-1-any.pkg.tar.zst...
#5 23.08 downloading filesystem-2020.08.21-1-x86_64.pkg.tar.zst...
#5 23.73 downloading glibc-2.32-3-x86_64.pkg.tar.zst...
#5 30.46 downloading gcc-libs-10.2.0-1-x86_64.pkg.tar.zst...
#5 38.65 downloading bash-5.0.018-1-x86_64.pkg.tar.zst...
#5 42.37 downloading libp11-kit-0.23.21-1-x86_64.pkg.tar.zst...
#5 44.24 downloading libcap-2.42-1-x86_64.pkg.tar.zst...
#5 44.99 downloading libgpg-error-1.39-1-x86_64.pkg.tar.zst...
#5 46.48 downloading systemd-libs-246.3-1-x86_64.pkg.tar.zst...
#5 48.72 downloading p11-kit-0.23.21-1-x86_64.pkg.tar.zst...
#5 50.07 downloading ca-certificates-mozilla-3.56-1-x86_64.pkg.tar.zst...
#5 52.28 downloading libutil-linux-2.36-2-x86_64.pkg.tar.zst...
#5 54.72 downloading curl-7.72.0-2-x86_64.pkg.tar.zst...
#5 57.60 downloading glib2-2.64.5-1-x86_64.pkg.tar.zst...
#5 60.93 downloading hwids-20200813.1-1-any.pkg.tar.zst...
#5 63.00 downloading pambase-20200721.1-2-any.pkg.tar.zst...
#5 63.38 downloading pam-1.4.0-3-x86_64.pkg.tar.zst...
#5 65.26 downloading kbd-2.3.0-2-x86_64.pkg.tar.zst...
#5 68.25 downloading pacman-mirrorlist-20200801-1-any.pkg.tar.zst...
#5 68.63 downloading sqlite-3.33.0-2-x86_64.pkg.tar.zst...
#5 72.16 downloading libxcrypt-4.4.17-1-x86_64.pkg.tar.zst...
#5 73.20 downloading file-5.39-1-x86_64.pkg.tar.zst...
#5 75.09 downloading util-linux-2.36-2-x86_64.pkg.tar.zst...
#5 79.08 downloading systemd-246.3-1-x86_64.pkg.tar.zst...
#5 85.13 checking keyring...
#5 85.28 checking package integrity...
#5 86.18 loading package files...
#5 86.21 checking for file conflicts...
#5 86.21 checking available disk space...
#5 86.23 error: Partition /etc/resolv.conf is mounted read only
#5 86.23 error: Partition /etc/hosts is mounted read only
#5 86.23 error: not enough free disk space
#5 86.23 error: failed to commit transaction (not enough free disk space)
#5 86.24 Errors occurred, no packages were upgraded.
#5 ERROR: executor failed running [/bin/sh -c pacman -Suy --noconfirm --noprogressbar]: runc did not terminate sucessfully
------
> [2/2] RUN pacman -Suy --noconfirm --noprogressbar:
------
failed to solve with frontend dockerfile.v0: failed to build LLB: executor failed running [/bin/sh -c pacman -Suy --noconfirm --noprogressbar]: runc did not terminate sucessfully

这失败了,我不明白为什么。

新容器中的相同命令:

$ docker run --rm archlinux/base pacman -Suy --noconfirm --noprogressbar
:: Synchronizing package databases...
downloading core.db...
downloading extra.db...
downloading community.db...
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (26) archlinux-keyring-20200820-1 bash-5.0.018-1 ca-certificates-mozilla-3.56-1 curl-7.72.0-2 file-5.39-1 filesystem-2020.08.21-1 gcc-libs-10.2.0-1 glib2-2.64.5-1 glibc-2.32-3 hwids-20200813.1-1 iana-etc-20200812-1 kbd-2.3.0-2 libcap-2.42-1 libgpg-error-1.39-1 libp11-kit-0.23.21-1 libutil-linux-2.36-2 libxcrypt-4.4.17-1 linux-api-headers-5.7-1 p11-kit-0.23.21-1 pacman-mirrorlist-20200801-1 pam-1.4.0-3 pambase-20200721.1-2 sqlite-3.33.0-2 systemd-246.3-1 systemd-libs-246.3-1 util-linux-2.36-2

Total Download Size: 63.83 MiB
Total Installed Size: 297.78 MiB
Net Upgrade Size: 7.41 MiB

:: Proceed with installation? [Y/n]
:: Retrieving packages...
downloading archlinux-keyring-20200820-1-any.pkg.tar.zst...
downloading linux-api-headers-5.7-1-any.pkg.tar.zst...
downloading iana-etc-20200812-1-any.pkg.tar.zst...
downloading filesystem-2020.08.21-1-x86_64.pkg.tar.zst...
downloading glibc-2.32-3-x86_64.pkg.tar.zst...
downloading gcc-libs-10.2.0-1-x86_64.pkg.tar.zst...
downloading bash-5.0.018-1-x86_64.pkg.tar.zst...
downloading libp11-kit-0.23.21-1-x86_64.pkg.tar.zst...
downloading libcap-2.42-1-x86_64.pkg.tar.zst...
downloading libgpg-error-1.39-1-x86_64.pkg.tar.zst...
downloading systemd-libs-246.3-1-x86_64.pkg.tar.zst...
downloading p11-kit-0.23.21-1-x86_64.pkg.tar.zst...
downloading ca-certificates-mozilla-3.56-1-x86_64.pkg.tar.zst...
downloading libutil-linux-2.36-2-x86_64.pkg.tar.zst...
downloading curl-7.72.0-2-x86_64.pkg.tar.zst...
downloading glib2-2.64.5-1-x86_64.pkg.tar.zst...
downloading hwids-20200813.1-1-any.pkg.tar.zst...
downloading pambase-20200721.1-2-any.pkg.tar.zst...
downloading pam-1.4.0-3-x86_64.pkg.tar.zst...
downloading kbd-2.3.0-2-x86_64.pkg.tar.zst...
downloading pacman-mirrorlist-20200801-1-any.pkg.tar.zst...
downloading sqlite-3.33.0-2-x86_64.pkg.tar.zst...
downloading libxcrypt-4.4.17-1-x86_64.pkg.tar.zst...
downloading file-5.39-1-x86_64.pkg.tar.zst...
downloading util-linux-2.36-2-x86_64.pkg.tar.zst...
downloading systemd-246.3-1-x86_64.pkg.tar.zst...
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
checking available disk space...
:: Processing package changes...
upgrading archlinux-keyring...
==> Appending keys from archlinux.gpg...
==> Locally signing trusted keys in keyring...
-> Locally signing key D8AFDDA07A5B6EDFA7D8CCDAD6D055F927843F1C...
==> ERROR: D8AFDDA07A5B6EDFA7D8CCDAD6D055F927843F1C could not be locally signed.
-> Locally signing key DDB867B92AA789C165EEFA799B729B06A680C281...
==> ERROR: DDB867B92AA789C165EEFA799B729B06A680C281 could not be locally signed.
-> Locally signing key 91FFE0700E80619CEB73235CA88E23E377514E00...
==> ERROR: 91FFE0700E80619CEB73235CA88E23E377514E00 could not be locally signed.
-> Locally signing key 0E8B644079F599DFC1DDC3973348882F6AC6A4C2...
==> ERROR: 0E8B644079F599DFC1DDC3973348882F6AC6A4C2 could not be locally signed.
-> Locally signing key AB19265E5D7D20687D303246BA1DFB64FFF979E7...
==> ERROR: AB19265E5D7D20687D303246BA1DFB64FFF979E7 could not be locally signed.
upgrading linux-api-headers...
upgrading iana-etc...
upgrading filesystem...
upgrading glibc...
warning: /etc/locale.gen installed as /etc/locale.gen.pacnew
Generating locales...
en_US.UTF-8... done
Generation complete.
upgrading gcc-libs...
upgrading bash...
upgrading libp11-kit...
upgrading libcap...
upgrading libgpg-error...
upgrading systemd-libs...
upgrading p11-kit...
upgrading ca-certificates-mozilla...
upgrading libutil-linux...
upgrading curl...
upgrading glib2...
upgrading hwids...
upgrading pambase...
upgrading pam...
upgrading kbd...
upgrading pacman-mirrorlist...
warning: /etc/pacman.d/mirrorlist installed as /etc/pacman.d/mirrorlist.pacnew
upgrading sqlite...
installing libxcrypt...
installing file...
upgrading util-linux...
upgrading systemd...
:: Running post-transaction hooks...
( 1/11) Creating system user accounts...
( 2/11) Updating journal message catalog...
( 3/11) Reloading system manager configuration...
Skipped: Current root is not booted.
( 4/11) Updating udev hardware database...
( 5/11) Applying kernel sysctl settings...
Skipped: Current root is not booted.
( 6/11) Creating temporary files...
/usr/lib/tmpfiles.d/journal-nocow.conf:26: Failed to resolve specifier: uninitialized /etc detected, skipping
All rules containing unresolvable specifiers will be skipped.
( 7/11) Reloading device manager configuration...
Skipped: Device manager is not running.
( 8/11) Arming ConditionNeedsUpdate...
( 9/11) Rebuilding certificate stores...
(10/11) Reloading system bus configuration...
Skipped: Current root is not booted.
(11/11) Cleaning up package cache...

它们之间有什么区别?我怎样才能拥有一个有效的 Dockerfile?

谢谢

PS:这不是空间问题(df -h 没有向我显示接近满的“Use%”)

最佳答案

正如 larsks 所注意到的,这似乎与 buildkit 有关。 /etc/resolv.conf/etc/hosts 在使用 buildkit 时以只读方式挂载。 pacman 似乎试图更新这些文件,导致您看到的错误。

作为解决方法,您可以设置 DOCKER_BUILDKIT environment variable从 1 到 0 禁用它。例如:

DOCKER_BUILDKIT=0 docker 构建。

关于Docker build 与 Docker run 的行为不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63652551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com