尝试在 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