docker 部署_GitLab CI 自动部署netcore web api 到Docker
前端篇文章中,我們已經成功的將asp.net core webapi在Docker容器中運行,并且部署了一套自己的GitLab環境。
.Net & Docker(二)5分鐘快速用Docker部署你自己的GitLab
.Net & Docker(一)在Docker容器上運行.Net Core API
接下來我們將用GitLab CI 來做到當有代碼提交時自動部署asp.net core web api到Docker容器。
GitLab CI 介紹
安裝本地Shell Runner
注冊Runner
編輯 .gitlab-ci.yml 執行任務
GitLab CI 介紹
GitLab CI 是GitLab的一部分,提供了一套UI及API用來管理項目的構建等。每一個構建請求稱之為job,而這些job最后會被指定的Runner來執行。
Runner是GitLab CI的重要組件之一,它可以部署在獨立的服務器上,不影響GitLab服務器。
GitLab CI 支持多平臺(Windows、OSX、Unix) 多語言(Java、Php、Ruby等),這其中自然也包括C#。它還有以下幾個特性:
分布式運行:多服務器、并行
可以運行在本地、Docker容器、SSH Remote等
支持批處理:windows、Power Shell (這讓我們用msbuild 編譯上一代的.net程序有了可能)
Runner三步走:
安裝
注冊
使用
在使用也就是執行階段,GitLab Runner 給我們提供了以下7種執行方式。官方稱之為 executors。
Shell
Docker
Docker Machine
Parallels
VirtualBox
SSH
Kubernetes
在注冊Runner階段,我們就需要選擇executor,我們今天將選擇使用本地Shell這種大家最熟悉的方式來執行作業Job。
?安裝本地Shell Runner
下載安裝
https://gitlab-ci-multi-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-ci-multi-runner-darwin-amd64
2. 提升權限
sudo chmod +x /usr/local/bin/gitlab-runner注冊Runner
1. 輸入以下命令啟動注冊
sudo gitlab-runner registerPlease enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
2. 我們會輸入 http://127.0.0.1?也就是我們安裝在本地的GitLab
3. Please enter the gitlab-ci token for this runner 要求輸入 gitlab-ci token
在項目的 Settings->Pipelines中可以找到
4. 輸入描述
5. 輸入tag(留空也可以,之后可以進行編輯 )
6. 選擇當遇到沒有打標簽的提交時是否會執行,我們選 true
7. 是否鎖定此runner 到當前項目, 我們選 false
8. 先一個執行者 executor
這一步比較重要 (ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell) 我們先shell在本地執行。
9. 選擇默認使用的鏡像:microsoft/dotnet:latest
在注冊完之后,我們可以在GitLab獲取gitlab-ci token 的頁面看到我們剛剛注冊的這個 runner
編輯.gitlab-ci.yml 執行任務
這是我們今天的最后一步,也非常簡單。我們只需要在根目錄添加 .gitlab-ci.yml的 輸入兩行命令即可。
build_image:script:
-?docker?build?-t?my-docker-image?.
-?docker?run?-t?-p?8080:80?my-docker-image
而這兩句命令就是我們自己去構建鏡像,以及運行容器的命令只不過由 gitlab-ci runner 來執行而已。
我們最后要做的只需要提交一份代碼即可:
編輯了一下 .gitlab-ci.yml文件并把它提交到gitlab。
這個commit下會有一個任務被自動觸發執行,查看這個任務,和我們在命令行執行 docker build 和 docker run 沒有什么兩樣 。
最后我們可以直接訪問重新編譯之后的結果 。
docker images查看我們的鏡像列表, my-docker-image剛剛被更新。
docker ps查看我們的容器列表,基于 my-docker-image 啟動的容器也已經被更新。
到這里我們已經完成了 dotnet core api 自動部署到 Docker 的全部過程,有了CI持續集成之后,我們開發完成代碼自測通過之后只需要提交代碼即可自動發布到測試完成(測試通過之后,還可以一鍵部署到生產環境)需要人工操作。同時還可以在CI中加入自動化測試,以保障開發快速穩定地迭代。
點擊左下角【閱讀原文】格式體驗更佳總結
以上是生活随笔為你收集整理的docker 部署_GitLab CI 自动部署netcore web api 到Docker的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平面模特需要什么要求
- 下一篇: 厦门有什么好玩的地方 这些地方值得去