Bitbucket Pipelines apt-get 停止工作
Posted
技术标签:
【中文标题】Bitbucket Pipelines apt-get 停止工作【英文标题】:Bitbucket Pipelines apt-get stopped working 【发布时间】:2019-08-17 06:37:33 【问题描述】:我的 Bitbucket 管道配置了一段时间,但今天我的构建开始在 apt-get
命令上失败:
我使用 java 8 docker 镜像:
image: java:8
我需要安装python
# Install python
- echo "Install python"
- apt-get update
- apt-get install python-pip -q -y
并且在“apt-get”命令上构建开始失败:
+ apt-get update
Get:1 http://security.debian.org jessie/updates InRelease [44.9 kB]
Ign http://deb.debian.org jessie InRelease
Ign http://deb.debian.org jessie-updates InRelease
Ign http://deb.debian.org jessie-backports InRelease
Get:2 http://deb.debian.org jessie Release.gpg [2420 B]
Ign http://deb.debian.org jessie-updates Release.gpg
Ign http://deb.debian.org jessie-backports Release.gpg
Get:3 http://deb.debian.org jessie Release [148 kB]
Ign http://deb.debian.org jessie-updates Release
Ign http://deb.debian.org jessie-backports Release
Err http://deb.debian.org jessie-backports/main amd64 Packages
Get:4 http://security.debian.org jessie/updates/main amd64 Packages [822 kB]
Get:5 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
Err http://deb.debian.org jessie-updates/main amd64 Packages
404 Not Found
Err http://deb.debian.org jessie-backports/main amd64 Packages
404 Not Found
Fetched 10.1 MB in 7s (1395 kB/s)
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-backports/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Skipping cache upload for failed step
Searching for test report files in directories named [test-results, failsafe-reports, test-reports, surefire-reports] down to a depth of 4
Finished scanning for test reports. Found 0 test report files.
Merged test suites, total number tests is 0, with 0 failures and 0 errors.
有什么变化吗?我需要调整我的配置吗?
【问题讨论】:
你为什么每次都安装pipfresh? Jessie 中的 pip 不再更改,因此您可以通过使用已经有 pip 的不同容器来节省构建时间和痛苦。 【参考方案1】:作为引用的其他答案,Jessie and Wheezy repositories have been removed from their normal locations。当尝试在某些 Docker 镜像上运行 apt-get update
时,这将导致 404 错误。
除非您对 Docker 映像有非常特殊的需求,否则我建议您将其更改为使用 Debian Stretch 存储库的映像。
在您的情况下,使用 java:8
图像,这是 deprecated 支持 openjdk image。我已经测试了openjdk:8
,发现它使用了 Stretch 并运行 apt-get update
很好。
我还写了一个official post on Atlassian Community 有类似的细节。如果我们发现任何其他可能与解决此问题相关的内容,我们将更新这篇文章。
【讨论】:
将“java:8”更改为“openjdk:8”有帮助。谢谢【参考方案2】:由于年龄原因,Jessie 和 Wheezy 已从其正常的 repo 位置移除。
请参阅此问题以获取解决方案:https://unix.stackexchange.com/questions/508724/failed-to-fetch-jessie-backports-repository
【讨论】:
【参考方案3】:也遇到了这个问题(因为它在 Pipeline 的机器上,甚至不是我自己的机器上)。
我在 apt-get update 之前运行了这个:sed -i '/jessie-updates/d' /etc/apt/sources.list
我的 pipelines.yml 的这一部分看起来像这样:
- sed -i '/jessie-updates/d' /etc/apt/sources.list # Debian mirror-network drops Jessie, so don't use it
- apt-get update # required to install zip
- apt-get install -y zip # required for packaging up the application
完整答案here(引用另一个)
【讨论】:
【参考方案4】:我的解决方案是改变
image: python:3.5.1
到
image: python:3.5.7
【讨论】:
【参考方案5】:我使用的是 maven:3.6.3 Docker 映像,也遇到了这个问题。 Docker 映像现在似乎是基于 Red Hat 的,但不包括 yum。只能使用 rpm,因此可以选择手动下载 rpm 包并使用 rpm 或使用不同的 Docker 映像作为基础。
【讨论】:
以上是关于Bitbucket Pipelines apt-get 停止工作的主要内容,如果未能解决你的问题,请参考以下文章
如何从 bitbucket-pipelines.yml 执行 git push?
使用 Bitbucket Pipelines 和 Docker 的 Android CI
使用 BitBucket Pipelines 通过 SSH 访问部署到 VPS
Bitbucket Pipelines apt-get 停止工作