我试图在我的Jenkins图片中安装Ansible(this way)。这是我的Dockerfile:
FROM jenkins
USER root
RUN apt-get install -y software-properties-common
RUN apt-add-repository ppa:ansible/ansible
RUN apt-get update
RUN apt-get install -y ansible
USER jenkins
但是当我构建图像时,我收到了这个错误:
W:无法获取http://ppa.launchpad.net/ansible/ansible/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found
E:某些索引文件无法下载。它们被忽略了,或者用旧的。
我意识到了这一点
http://ppa.launchpad.net/ansible/ansible/ubuntu/dists/jessie
不存在。
由于
答案 0 :(得分:2)
从上面的链接中,ansible ppa似乎只支持ubuntu,所以你最终添加了一个破坏的ppa。您的泊坞窗图片jenkins
继承自java:8-jdk
,继承自buildpack-deps:jessie-scm
的{{1}}和buildpack-deps:jessie-curl
debian:jessie
来自here
如果您希望运行最新发布的Ansible和 您正在运行Red Hat Enterprise Linux(TM),CentOS,Fedora,Debian, 或者Ubuntu,我们建议使用OS包管理器。
这意味着,如果你有这样的Dockerfile
[anovil@ubuntu-anovil docker-ansible-jenkins]$ cat Dockerfile
FROM jenkins
USER root
RUN apt-get update
RUN apt-get install -y ansible
USER jenkins
[anovil@ubuntu-anovil docker-ansible-jenkins]$
这就足够了,我设法测试了这个,这很有效!
[anovil@ubuntu-anovil docker-ansible-jenkins]$ docker build -t jenkins --rm .
Sending build context to Docker daemon 2.048 kB
...
[anovil@ubuntu-anovil docker-ansible-jenkins]$ docker run -d -p 8080:8080 jenkins
e722efecdf7beb462bafaff653b19261268abbd2d56f88334ba6c42d068b2877
[anovil@ubuntu-anovil docker-ansible-jenkins]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e722efecdf7b jenkins "/bin/tini -- /usr/lo" 4 minutes ago Up 4 minutes 0.0.0.0:8080->8080/tcp, 50000/tcp focused_cray
[anovil@ubuntu-anovil docker-ansible-jenkins]$
让我们听听这对你的影响。
谢谢,
答案 1 :(得分:0)
这是我的解决方法
FROM jenkins/jenkins
USER root
RUN apt-get update && apt-get install python3-pip -y && \
pip3 install ansible --upgrade &&\
apt-get upgrade -y && apt-get update
USER jenkins