拉取镜像 启动容器 暴露出来 9980和9922端口
docker pull gitlab/gitlab-ce:latest
mkdir -P /data/gitlab-test/etc /data/local/gitlab-test/log /data/local/gitlab-test/opt
docker run
-itd
-p 9980:80
-p 9922:22
-v /data/gitlab-test/etc:/etc/gitlab
-v /data/local/gitlab-test/log:/var/log/gitlab
-v /data/local/gitlab-test/opt:/var/opt/gitlab
--restart always
--privileged=true
--name gitlab-test
gitlab/gitlab-ce
进入容器修改基本配置 字面意思看描述修改
docker exec -it gitlab-test /bin/bash
production: &base
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: xx.xx.xx.xx # 你的主机IP
port: 9980
https: false
ssh_host: xx.xx.xx.xx # 你的主机IP
# If your ssh user differs from the system user, you need to specify it here
# Set it to an empty string to omit the username from any ssh url altogether
ssh_user:
gitlab_shell:
# If you use non-standard ssh port you need to specify it
ssh_port: 9922
让配置生效
gitlab-ctl reconfigure
gitlab-ctl restart
# 同时修改密码
gitlab-rails console
user = User.where(id: 1).first
或者
user = User.find_by(email: 'admin@example.com')
user.password = '你的密码'
user.password_confirmation = '你的密码'
user.save
登录之后默认会有个Monitoring 项目 可以开始配置gitlab Runners,进行gitlab cicd 的自动构建
首先在设置里面找到注册runner的url 和 token:如下图所示
我选择的是在docker里面启动runnser服务 官方地址:https://docs.gitlab.com/runner/install/docker.html
可以有2种方式一种是使用本地的存储卷,一种是使用docker存储卷 我使用本地存储
https://docs.gitlab.com/runner/install/docker.html
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
### 在 macOS, 使用 /Users/Shared 替换 /srv
### 注册runner https://docs.gitlab.com/runner/register/index.html#docker
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
### 注册的时候会选择执行器,可以根据需要选择 我选择了shell 和 docker,一次注册只能选择一个执行器
### 根据选项一步一步注册就好了 tag 和 描述要写好,在后面的.git-ci.yam 配置里面会用到
配置 ci/cd 描述文件
default:
tags:
- docker
before_script:
- export PACKAGE_NAME=${CI_PROJECT_NAME}_${CI_COMMIT_SHA:0:8}.zip
stages: # List of stages for jobs, and their order of execution
- build
build-job: # This job runs in the build stage, which runs first.
stage: build
script:
- echo "Compiling the code..."
- echo "Compile complete."
- go build main.go
artifacts:
expire_in: 1 week
when: on_success
paths:
- main
# archive_package:
# stage: package
# script:
# - zip -r ${PACKAGE_NAME} main
# artifacts:
# expire_in: 1 week
# when: on_success
# untracked: true
# paths:
# - ${PACKAGE_NAME}
# tags:
# - docker
# only:
# - tags
在cd/cd Pipeline 菜单里面执行作业:
通过 artifacts 关键字可以生成构建物,在仓库的tag 里面可以进行下载
具体的 .gitlab-ci.yml 文件语法可以参考官方文档
https://docs.gitlab.com/ee/ci/yaml/
构建结果
注意事项
- gitlab 和 runner 的版本要一致,否则可能出现构建记录无法出现的错误
- 可以通过 docker logs id 查看具体的日志