GitLab+Docker快速搭建CI/CD自動化部署

1、準備工做
  • 1.1. gitlab環境
  • 1.2. 裝有 dockergitlab-runner環境的雲服務器(這裏用到 CentOS764位
  • 1.3. 項目代碼
  • 1.4. Dockerfile
  • 1.5. .gitlab-ci.yml

2、環境配置git

  • 2.1. 爲項目註冊執行部署任務的Runner服務器
  • 2.2. 雲服務器註冊runner

3、提交更新並自動部署到服務器,測試地址:http://182.61.57.121:8000golang

  • 3.1. 提交代碼到git master分支
  • 3.2. 等待Job任務完成
  • 3.3 測試結果

1、準備工做docker

  1. gitlab環境(爲了方便,使用官方的託管倉庫)
  2. 裝有 dockergitlab-runner環境的雲服務器(這裏用到 CentOS764位
  3. 項目代碼,這裏我使用Golang做爲開發語言,其它開發語言也同樣的操做流程代碼.png
  1. Dockerfile文件
# 鏡像文件
FROM golang:latest
# 維修者
MAINTAINER Razil "412657308@qq.com"
# 鏡像中項目路徑
WORKDIR $GOPATH/src/kun.com/cicd-demo
# 拷貝當前目錄代碼到鏡像
COPY . $GOPATH/src/kun.com/cicd-demo
# 製做鏡像RUN go build .
# 暴露端口
EXPOSE 8000
# 程序入口
ENTRYPOINT ["./cicd-demo"]複製代碼
  1. .gitlab-ci.yml文件,語法查看
stages:
 - deploy

docker-deploy:
 stage: deploy
  # 執行Job內容
 script:
    # 經過Dockerfile生成cicd-demo鏡像
 - docker build -t cicd-demo .
    # 刪除已經在運行的容器
 - if [ $(docker ps -aq --filter name= cicd-demo) ]; then docker rm -f cicd-demo;fi
    # 經過鏡像啓動容器,並把本機8000端口映射到容器8000端口
 - docker run -d -p 8000:8000 --name cicd-demo cicd-demo
 tags:
    # 執行Job的服務器
 - kun
 only:
    # 只有在master分支纔會執行
 - master複製代碼

2、環境配置segmentfault

1. 爲項目註冊執行部署任務的Runner服務器

由於我已經配置過了,因此下面面有runner,runner的標籤是多runner執行任務時區分的標識,後面部署過程我會使用標籤爲 kun而不是 test服務器來執行job,下面會截圖配置過程。 1.gitlab設置runner.jpgbash

2.雲服務器註冊runner

2.服務器配置.png

3、提交更新並自動部署到服務器服務器

runner註冊成功後,經過git命令提交更新到master分支,只要master分支有修改,都會執行Job的任務。gitlab

3.1.提交代碼到git master分支.png 3.2.等待Job任務完成.png

4.查看job執行任務過程.png

此時,經過連接http://182.61.57.121:8000能夠看到服務器已經部署代碼而且能夠正常訪問了。 4.測試結果.png測試

擴展:經過踐行GitFlow工做流經常使用操做流程,能夠有一套方便且高效的系統持續集成方案。ui


歡迎關注個人公衆號kk工做室,瞭解更多技術博文。spa

  kk工做室

相關文章
相關標籤/搜索