2016-01-21 50 views
0

我想在我的Jenkins图像中安装Ansible(this way)。这是我的Dockerfile:尝试在Jenkins图像中安装Ansible时出错

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不存在。

感谢

+0

该指南使用Ubuntu作为操作系统的基础上,尝试使用的操作系统是Ubuntu的,所以编辑泊坞窗:从Ubuntu的:14.04 –

+0

做'apt-get的update'第一 – user2915097

+0

@ThanhNguyenVan然后我失去詹金斯(我必须手动安装它) –

回答

1

从你上面的链接,ansible PPA似乎只有对Ubuntu的支持,所以你最终将一个破碎的PPA。你的搬运工图像从java:8-jdk进一步继承jenkins继承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这样

[[email protected] docker-ansible-jenkins]$ cat Dockerfile 
FROM jenkins 
USER root 
RUN apt-get update 
RUN apt-get install -y ansible 
USER jenkins 
[[email protected] docker-ansible-jenkins]$ 

这足够了,我设法测试这个,这个工程!

[[email protected] docker-ansible-jenkins]$ docker build -t jenkins --rm . 
Sending build context to Docker daemon 2.048 kB 
... 
[[email protected] docker-ansible-jenkins]$ docker run -d -p 8080:8080 jenkins 
e722efecdf7beb462bafaff653b19261268abbd2d56f88334ba6c42d068b2877 
[[email protected] 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 
[[email protected] docker-ansible-jenkins]$ 

让我们听听这是怎么回事。

感谢,

+0

太棒了,它的工作原理!非常感谢:D –