jenkins 搭建安裝小記(上)

雪花飄發表於2019-01-27
  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
  3. 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
  4. 使用 docker-compose up -d --build 啟動容器或 docker-compose down刪掉容器,在除錯修改Dockerfile檔案過程中沒有加--build引數導致測試的都是老映象,所以修改Dockerfile檔案後記得加上 --build 重新構建映象
本作品採用《CC 協議》,轉載必須註明作者和本文連結

雪花飄

相關文章