首頁 >後端開發 >Golang >gitlab 部署 golang

gitlab 部署 golang

PHPz
PHPz原創
2023-05-21 16:39:08711瀏覽

一、背景

Gitlab是一款開源的版本控制系統,可實現程式碼倉庫管理、版本控制、協作開發等功能。而golang則是一種編譯型的高效能語言,因其並發性能出色以及開發效率高而備受開發者關注。

在實際使用中,我們可能需要將golang應用程式部署到Gitlab上,以便自動化建置及持續整合。本文將介紹如何在Gitlab上部署golang應用程式。

二、準備工作

1、安裝Gitlab

首先需要安裝Gitlab,可參考Gitlab官網提供的安裝教學進行安裝。

2、安裝golang

其次需要安裝golang,在官網可以直接下載最新的安裝套件進行安裝。安裝完成後,還需要設定環境變數。

三、建立golang項目

1、建立項目

在Gitlab中新建一個golang項目,選擇「Create a project」。輸入項目名稱、描述等信息,選擇預設設置,創建成功後會有一個git倉庫地址。

2、初始化項目

進入本機golang專案目錄,執行下列指令將該專案初始化為git倉庫:

git init

將該專案關聯至Gitlab倉庫位址:

git remote add origin [Gitlab 仓库地址]

將專案文件提交至Gitlab倉庫:

git add .
git commit -m "Initial commit"
git push -u origin master

提交完成後,我們就將golang專案成功地上傳至Gitlab倉庫。

三、設定gitlab-ci.yml檔案

1、建立檔案

#在golang專案根目錄下建立一個.gitlab-ci.yml檔案。

2、修改配置

在.gitlab-ci.yml檔案中編寫以下配置:

image: docker/compose:1.18.0

services:
  - docker:dind

before_script:
  - apk update && apk add --no-cache curl git
  - curl https://glide.sh/get | sh

stages:
  - build
  - deploy

build:
  stage: build
  script:
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
    - docker pull registry.gitlab.com/xxxxxxxxx/golang:latest || true
    - docker build --cache-from registry.gitlab.com/xxxxxxxxx/golang:latest -t registry.gitlab.com/xxxxxxxxx/golang:$CI_BUILD_TAG --pull .
    - docker push registry.gitlab.com/xxxxxxxxx/golang:$CI_BUILD_TAG

deploy:
  stage: deploy
  script:
    - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
    - docker pull registry.gitlab.com/xxxxxxxxx/golang:$CI_BUILD_TAG || true
    - docker run -d --name appname -p 8080:8080 registry.gitlab.com/xxxxxxxxx/golang:$CI_BUILD_TAG

該設定檔中的xxx處需要替換為自己的Gitlab倉庫地址。

其中,before_script中的指令是在Docker容器中安裝glide依賴工具。

build和deploy分別代表建置和部署兩個階段。 build階段主要用於建置Docker映像,deploy階段主要用於將已建置好的Docker映像部署到伺服器上。

四、建置和部署golang應用程式

1、建置Docker映像

在專案根目錄下執行以下命令進行映像建置:

docker build -t golang-app .

# 2、部署應用程式

執行下列指令將Docker映像部署到伺服器上:

docker run -d --name my-golang-app -p 8080:8080 golang-app

至此,我們已經成功地將golang應用程式部署到Gitlab上。透過Gitlab的CD/CI功能,我們可以實現自動化建置及持續集成,提高開發效率,並且方便快速地進行部署和更新。

以上是gitlab 部署 golang的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn