尝试在 Jenkins 映像中安装 Ansible 时出错
Error trying to install Ansible in Jenkins image
我正在尝试在我的 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: Failed to fetch http://ppa.launchpad.net/ansible/ansible/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. Thet have been ignored, or old ones used instead.
我意识到
http://ppa.launchpad.net/ansible/ansible/ubuntu/dists/jessie
不存在。
谢谢
从你上面的 link 来看,ansible ppa 似乎只支持 ubuntu,所以你最终添加了一个损坏的 ppa。您的 docker 图像 jenkins
继承自 java:8-jdk
,后者进一步继承自 buildpack-deps:jessie-scm
,后者继承 buildpack-deps:jessie-curl
,而那个图像来自 debian:jessie
来自here
If you are wishing to run the latest released version of Ansible and
you are running Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian,
or Ubuntu, we recommend using the OS package manager.
这意味着,如果您有这样的 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]$
让我们听听您的情况如何。
谢谢,
这是我的解决方案
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
我正在尝试在我的 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: Failed to fetch http://ppa.launchpad.net/ansible/ansible/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. Thet have been ignored, or old ones used instead.
我意识到
http://ppa.launchpad.net/ansible/ansible/ubuntu/dists/jessie
不存在。
谢谢
从你上面的 link 来看,ansible ppa 似乎只支持 ubuntu,所以你最终添加了一个损坏的 ppa。您的 docker 图像 jenkins
继承自 java:8-jdk
,后者进一步继承自 buildpack-deps:jessie-scm
,后者继承 buildpack-deps:jessie-curl
,而那个图像来自 debian:jessie
来自here
If you are wishing to run the latest released version of Ansible and you are running Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian, or Ubuntu, we recommend using the OS package manager.
这意味着,如果您有这样的 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]$
让我们听听您的情况如何。
谢谢,
这是我的解决方案
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