准备
gitlab支持CI/CD,通过简单的配置便可以搭建CI/CD服务。
.gitlab-ci.yml
CI配置脚本,具体语法请查看gitlab文档。这里列举下简单配置:
# 基础镜像
image: node:latest
# 定义变量
variables:
DOCKER_DRIVER: overlay
DOCKER_IMAGE_NAME: $DOCKER_REGISTRY_URL/${CI_PROJECT_NAMESPACE}/$CI_PROJECT_NAME:$CI_PIPELINE_IID-$CI_COMMIT_SHORT_SHA
WORK_HOME: .
DOCKERFILE: ./Dockerfile
MARATHON_CONFIG: ./marathon.json
GITLAB_NPM_MODULES: /local_cache/npm/modules
KUBECONFIG: /config
HEALTH_CHECK_URL: /path/to/healthcheck/url
# 执行的步骤
stages:
- step-1
- step-2
- step-3
webpack-build:
# 步骤名称
stage: step-1
tags:
# runner的tag
- default
# 使用的镜像
image: node:latest
# 执行的脚本
script:
- env
- npm uninstall yarn webpack webpack-cli -g
- npm install yarn@1.22.5 --force -g
- yarn install
- yarn run build
artifacts:
name: webpack_build
paths:
- $WORK_HOME/dist/*
expire_in: 1 week
only:
# 只对master分支执行
- master
gitlab-runner
gitlab-runner是运行CI/CD任务的宿主容器,可以部署在任意操作系统上。本文选用windows的Docker作为gitlab-runner的容器。
Docker
本文在windows docker中安装gitlab-runner,首先需在本地安装docker。详情参考docker教程。
安装完成后,需切换为linux容器,否则无法安装gitlab-runner镜像(gitlab-runner镜像无windows版本)。
操作:右键到docker图标,选择
Switch to Linux Containers...
在windows docker中搭建gitlab-runner环境
拉取镜像
docker pull gitlab/gitlab-runner
通过
docker images查看镜像是否获取成功
启动容器
在启动容器之前,需要了解到有些gitlab-runner的配置信息需要存储。我们可以通过数据卷的方式。
通过本地系统数据卷挂载来启动容器
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
在mac系统上,使用/Users/Shared替换/srv
通过docker数据卷启动容器
- 创建docker数据卷
docker volumn create gitlab-runner-config
- 使用创建的volume来启动gitlab-runner容器
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v gitlab-runner-config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
通过
docker ps查看是否运行成功
注册gitlab-runner
- 根据不同的挂载方式运行注册命令:
- 本地系统数据卷方式挂载:
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
- docker数据卷挂载
docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner register
然后根据提示输入gitlab仓库中对应的配置。
在选择executor时,选择docker,之后会被要求填写一个基础镜像,本文这里写的是docker:latest,根据需要输入即可。
再重新启动gitlab-runner,这时配置已完成。