一个集成了ansible的jenkins镜像。基础镜像来似jenkins:lts。 运行容器时,先在缩主机创建ansible和jenkins_home两个文件夹。然后将文件夹的权限赋给用户组1000和用户1000。如:
chown -R 1000:1000 ansible
chown -R 1000:1000 jenkins_home
然后,用docker-compose运行容器,docker-compose.yml如下:
version: '3'
services:
jenkins:
restart: always
image: pickear/jenkins:lts
container_name: jenkins
privileged: true
ports:
- '8090:8080'
- '50000:50000'
environment:
- TZ=Asia/Shanghai
volumes:
- $PWD/jenkins_home:/var/jenkins_home
- $PWD/ansible:/etc/ansible
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /etc/localtime:/etc/localtime:ro
- /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
具体的Dockerfile如下:
FROM jenkins/jenkins:lts
ARG ANSIBLE_HOME=/etc/ansible
ENV ANSIBLE_HOME $ANSIBLE_HOME
USER root
RUN mkdir -p /etc/ansible/authorized_keys
RUN apt-get update -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sshpass \
ansible \
locales \
&& \
apt-get clean
#RUN pip install pip --upgrade
#RUN pip install --upgrade pycrypto cryptography
RUN /bin/echo -e "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts
RUN locale-gen en_US.UTF-8
RUN ssh-keygen -q -t rsa -N '' -f /root/.ssh/id_rsa && \
cp /root/.ssh/id_rsa.pub /etc/ansible/authorized_keys
RUN chown -R jenkins:jenkins /root/.ssh
RUN chown -R jenkins:jenkins /etc/ansible
RUN chmod -R a+x /etc/ansible
RUN cp -arnp /etc/ansible /var
RUN sed -i '2i\cp -arnp /var/ansible /etc' /usr/local/bin/jenkins.sh
USER jenkins
VOLUME /etc/ansible
Content type
Image
Digest
Size
362.6 MB
Last updated
over 5 years ago
docker pull pickear/jenkins:lts