docker
和 gitlab-runner
環境的雲服務器(這裏用到 CentOS764位
)Dockerfile
.gitlab-ci.yml
2、環境配置git
3、提交更新並自動部署到服務器,測試地址:http://182.61.57.121:8000golang
1、準備工做docker
- gitlab環境(爲了方便,使用官方的託管倉庫)
- 裝有
docker
和gitlab-runner
環境的雲服務器(這裏用到CentOS764位
)- 項目代碼,這裏我使用Golang做爲開發語言,其它開發語言也同樣的操做流程
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"]複製代碼
.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,下面會截圖配置過程。bash
3、提交更新並自動部署到服務器服務器
runner註冊成功後,經過git命令提交更新到master分支,只要master分支有修改,都會執行Job的任務。gitlab
此時,經過連接http://182.61.57.121:8000能夠看到服務器已經部署代碼而且能夠正常訪問了。 測試
擴展:經過踐行GitFlow工做流經常使用操做流程,能夠有一套方便且高效的系統持續集成方案。ui
歡迎關注個人公衆號kk工做室,瞭解更多技術博文。spa