尝试在Jenkins映像中安装Ansible时出错

时间:2016-01-21 10:50:25

标签: jenkins docker ansible dockerfile

我试图在我的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不存在。

由于

2 个答案:

答案 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