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 重新構建鏡像
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章