gitlab 部署 golang

2023-05-21 16:05:37 gitlab 部署 Golang

一、背景

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的详细内容,更多请关注其它相关文章!

相关文章