Gitlab Runner 持續集成部署

項目部署

項目基於博客 springCould 基礎服務搭建 之後編寫的代碼(https://blog.csdn.net/renguiriyue/article/details/102756028)

  • dependencies 部署到nexus 上
  • registry 私服配置
  • ubuntu git 拉取代碼配置
  • gitlab-runner 持續配置
  • 測試 持續部署是否成功

下面具體的步驟:

dependencies 部署到nexus 上

# 通過以下代碼上傳代碼到 nexus
mvn deploy

registry 私服配置

參考
https://blog.csdn.net/renguiriyue/article/details/102547641

Ubuntu git 拉取代碼配置

創建一臺Server Deploy 服務器,專門部署服務
參考:https://blog.csdn.net/renguiriyue/article/details/102300907
注意:只需配置(daemon.json)

gitlab-runner 持續部署配置

Server Deploy 服務器上

// 簡化部分目錄創建
- cd /usr/local/docker/config
- vi docker-compose.yml
-------  以下docker-compose.yml 文件開始 -------
version: '3.1'
services:
  gitlab-runner:
    build: environment
    restart: always
    container_name: gitlab-runner
    privileged: true
    volumes:
	  - /usr/local/docker/runner/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
-------  以上 docker-compose.yml 文件結束 -------

# ~config 目錄下
- mkdir environment
- vi Dockerfile
---------  Dockerfile 文件開始   --------
FROM gitlab/gitlab-runner:v12.0.1
MAINTAINER sisyphus <[email protected]>

# 修改軟件源
RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse' > /etc/apt/sources.list && \
    echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse' >> /etc/apt/sources.list && \
    echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse' >> /etc/apt/sources.list && \
    echo 'deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse' >> /etc/apt/sources.list && \
    apt-get update -y && \
    apt-get clean

# 安裝 Docker
RUN apt-get -y install apt-transport-https ca-certificates curl software-properties-common && \
    curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add - && \
    add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" && \
    apt-get update -y && \
    apt-get install -y docker-ce
COPY daemon.json /etc/docker/daemon.json

# 安裝 Docker Compose(這邊的鏈接會失效的,所以還需要自己到docker-compose 確認)
WORKDIR /usr/local/bin
#RUN wget https://raw.githubusercontent.com/topsale/resources/master/docker-compose
RUN curl -L https://github.com/docker/compose/releases/download/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
RUN chmod +x docker-compose
#RUN chmod +x /usr/local/bin/docker-compose

# 安裝 java
RUN mkdir -p /usr/local/java
WORKDIR /usr/local/java
COPY jdk-8u221-linux-x64.tar.gz /usr/local/java
RUN tar -zxvf jdk-8u221-linux-x64.tar.gz && \
    rm -fr jdk-8u221-linux-x64.tar.gz

# 安裝 Maven
RUN mkdir -p /usr/local/maven
WORKDIR /usr/local/maven
#RUN wget https://raw.githubusercontent.com/topsale/resources/master/maven/apache-maven-3.5.3-bin.tar.gz
RUN wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
# COPY apache-maven-3.6.1-bin.tar.gz /usr/local/maven
RUN tar -zxvf apache-maven-3.6.1-bin.tar.gz && \
    rm -fr apache-maven-3.6.1-bin.tar.gz
# 準備一份maven 配置好的文件,這裏參考 nexus 配置
COPY settings.xml /usr/local/maven/apache-maven-3.6.1/conf/settings.xml

# 配置環境變量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_152  # 這邊是jdk解壓後的文件夾目錄,不清楚的話,本地解壓看看
ENV MAVEN_HOME /usr/local/maven/apache-maven-3.6.1
ENV PATH $PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

WORKDIR /

---------  Dockerfile 文件開始   --------
  

簡單描述以下Dockerfile:
裏面安裝了一些軟件,有些是在線裝的,有些是需要把壓縮包扔到 ~environment 目錄下的,需要注意
1、文件的名稱需要修改。
2、gitlab-runner 的版本需要和gitlab 的版本一致(或最近的那個版本)
3、從Dockerfile 文件中發現還需要daemon.json 文件

# 創建daemon.json 在 ~environment
{"registry-mirrors": ["http://hub-mirror.c.163.com"],
"insecure-registries":[
       "192.168.22.47:5000"
  ]
}

註冊runner

  # zai ~config 目錄下
  # 註冊 runner
  - docker exec -it gitlab-runner gitlab-runner register

在這裏插入圖片描述
上面那張圖就是runner的整個流程註冊完成了,現在回到工程,添加一個文件,並寫上測試代碼
在這裏插入圖片描述
看看效果吧
在這裏插入圖片描述
看到Jobs 裏面有輸出,所以再交互式的進入Server Deploy 服務器上我們部署的
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
進入容器後,發現我們的東西都被添加進來了。
PS: 如果上述有錯誤,歡迎大家提出

發佈了56 篇原創文章 · 獲贊 6 · 訪問量 4923
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章