在 18.04 docker 镜像中添加 PPA 引用“lunar”

在 18.04 docker 镜像中添加 PPA 引用“lunar”

我需要gcc-10在一个非常具体的非常旧的 18.04 docker 镜像中安装。

发生的情况是gcc-10apt 根本找不到该包。

当使用涉及的标准程序时add-apt-repository ppa:ubuntu-toolchain-r/test,有问题的 docker build 中的输出显示如下:

#11 [builder  8/58] RUN add-apt-repository ppa:ubuntu-toolchain-r/test
#11 sha256:986838b1775ab762834c16c4e7b70e341339109cd31b0b06b587dd05202f0842
#11 0.809  Toolchain test builds; see https://wiki.ubuntu.com/ToolChain
#11 0.809 
#11 0.809  More info: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
#11 3.106 Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
#11 3.106 Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
#11 3.107 Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
#11 3.108 Hit:4 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease
#11 3.109 Hit:5 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
#11 3.228 Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu lunar InRelease [23.8 kB]
#11 3.697 Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu lunar/main amd64 Packages [9892 B]
#11 3.710 Fetched 33.7 kB in 1s (52.6 kB/s)
#11 3.710 Reading package lists...
#11 DONE 4.4s

在该映像的上部基础映像和 vanilla 18.04 映像上进行干净测试运行后,该部分的相应输出(继续查找结果gcc-10正常)为:

#10 [6/8] RUN add-apt-repository ppa:ubuntu-toolchain-r/test
#10 sha256:0712dfeb0955c88daac2c4b7efbb1f9f17f0d5e32eb738745e2506a8e5284504
#10 0.941  Toolchain test builds; see https://wiki.ubuntu.com/ToolChain
#10 0.941 
#10 0.941  More info: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test
#10 1.733 Hit:1 https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64  InRelease
#10 1.775 Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease
#10 1.785 Hit:3 http://archive.ubuntu.com/ubuntu bionic-updates InRelease
#10 1.794 Hit:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease
#10 1.837 Hit:5 http://security.ubuntu.com/ubuntu bionic-security InRelease
#10 1.838 Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease [20.8 kB]
#10 2.316 Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic/main amd64 Packages [50.4 kB]
#10 2.483 Fetched 71.1 kB in 1s (88.5 kB/s)
#10 2.483 Reading package lists...
#10 DONE 3.2s

如您所见,有问题的行为与提及有关,lunar但无错误。

我很好奇是什么原因造成的,作为一个apt文盲,我希望得到一些建议,告诉我可以做些什么来强制它获取它,bionic因为我觉得如果我能改变这一点,我就能解决安装的问题gcc-10。当然,这个特定的docker镜像的日子屈指可数,所以我不需要一个超级强大的解决方案。

同时,我可以做其他的事情,比如在多阶段 docker 方法中使用 gcc-10,在单独的 vanilla docker 镜像中获取并使用它,然后引入工件,但我认为这里可能有一个简单的与 apt 相关的解决方案。

答案1

通过建议解决这里(dockerfile 片段,测试,可能不会让每个命令成为自己的层)

RUN add-apt-repository ppa:ubuntu-toolchain-r/test
RUN ls -la /etc/apt/sources.list.d/
RUN cat /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-lunar.list
RUN sed 's/lunar/bionic/' /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-lunar.list > /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-bionic.list
RUN cat /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-bionic.list
RUN apt-get update

相关内容