jenkins搭建安装小记(上)

  1. 拉取 jenkins 镜像
    docker pull jenkins
  2. 构建 Dockerfile 和 docker-compose.yml 文件
    Dockerfile
#在原基础镜像上二次构建
from jenkins
USER root
#下载最新版本的 jenkins.war,使安装后的jenkins是最新版本的,最后新版的 jenkins.war可以在简单运行 jenkins 容器后下载获得 docker run -p 8080:8080 -p 50000:50000 jenkins 
COPY jenkins.war /usr/share/jenkins/
#因为发布脚本使用到ansible同步文件,所以用了ansible的配置
COPY ansible /etc/ansible
#最后发布脚本是使用python3的发布脚本,所以要安装python3的环境,修改pip的下载源,其中 pip.conf内容为:
#[global]
#index-url=http://mirrors.aliyun.com/pypi/simple/
#[install]
#trusted-host=mirrors.aliyun.com
#[list]
#format=columns
COPY pip /root/.pip
COPY Python-3.6.3.tar /usr/local/src/
#安装node环境,方便前端使用npm编译
COPY node-v10.15.0-linux-x64.tar /usr/local/src/
#更正容器的时间为东八区时间
COPY timezone /etc/timezone
#rsync同步代码使用,gcc zlib* openssl* libssl-dev 编译python3使用,cryptography安装要指定2.4.2版本,否则会报过时警告
RUN apt-get update && apt-get install -y rsync make gcc zlib* openssl* libssl-dev vim \
&& cd /usr/local/src \
&& tar -xf Python-3.6.3.tar \
&& cd Python-3.6.3 \
&& ./configure && make && make install \
&& pip3 install cryptography==2.4.2 \
&& pip3 install paramiko \
&& pip3 install ansible==2.3.1.0 
#安装node及配置npm下载源
RUN cd /usr/local/src \
&& tar xf node-v10.15.0-linux-x64.tar \
&& cp node-v10.15.0-linux-x64 /usr/local/node-v10 -rf \
&& ln -s /usr/local/node-v10/bin/node /usr/local/bin/node \
&& ln -s /usr/local/node-v10/bin/npm /usr/local/bin/npm \
&& npm config set registry https://registry.npm.taobao.org \
&& rm -rf /usr/local/src/*
#修改ssh_config配置,这样ssh到目标方机不用进行手工确认了
RUN sed -i "/StrictHostKeyChecking/d" /etc/ssh/ssh_config
RUN echo "StrictHostKeyChecking no" >>/etc/ssh/ssh_config
#ansible会往/var/log写日志,所以要给写权限
RUN chmod -R 777 /var/log
USER jenkins
#拷贝私钥到 jenkins主目录的.ssh目录下,该密钥的公钥已经配置了gitlab上的仓库仓库,所以只要配置了该私钥就可以拉取所有代码,转jenkins用户操作是为了使这个文件属主是jenkins,否则无法查看
COPY ssh /var/jenkins_home/.ssh
  1. docker-compose.yml文件
jenkins:
  build: ./
  container_name: jenkins_latest
  restart: always
  ports:
    - "8080:8080"
    - "50000:50000"
  volumes:
#在宿主机新建/var/jenkins_latest目录,新建jenkins用户,修改jenkins_latest属主为jenkins,当然要宿主机的jenkins和容器的jenkens用户id一样才有效,一般为1000,这样jenkins才可以往这个目录写文件
    - /var/jenkins_latest:/var/jenkins_home
#同步代码使用
    - /etc/hosts:/etc/hosts
#修改容器时间使用
    - /etc/localtime:/etc/localtime
#这是ansible的一些命令配置
    - /srv/ansible:/srv/ansible
  1. 使用 docker-compose up -d --build 启动容器或 docker-compose down删掉容器,在调试修改Dockerfile文件过程中没有加–build参数导致测试的都是老镜像,所以修改Dockerfile文件后记得加上 --build 重新构建镜像
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值