文章目录
Gitlab For Docker 安装配置
安装前准备
gitlab 安装:
获取 gitlab 镜像
docker pull gitlab/gitlab-ce
运行 gitlab 镜像
说明:5005 是用来开启私有镜像仓库的端口, 如果需要开启私有镜像仓库的则需要映射
- -d:后台运行
- -p:将容器内部端口向外映射
- –name:命名容器名称
- -v:将容器内数据文件夹或者日志、配置等文件夹挂载到宿主机指定目录
docker run -d \
--name gitlab --restart=unless-stopped \
-p 8443:443 -p 8480:80 -p 222:22 -p 5005:5005 \
-v /usr/local/docker/gitlab/config:/etc/gitlab \
-v /usr/local/docker/gitlab/logs:/var/log/gitlab \
-v /usr/local/docker/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
配置 gitlab
vi /usr/local/docker/gitlab/config/gitlab.rb
修改内容
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://192.168.220.40'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.220.40'
gitlab_rails['gitlab_shell_ssh_port'] = 22 # 此端口是run时22端口映射的22端口
# 如果不想开启镜像仓库则不需要下面的配置: 比如已经有 nexus3 或者不使用 gitlab-ci/cd 流程
registry_external_url 'http://192.168.220.40:5005'
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "192.168.220.40"
gitlab_rails['registry_port'] = "5005"
# gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"
重启 gitlab
docker restart gitlab
gitlab-runner 安装:
- gitlab-runner for docker 官方文档
- 如果需要集成 gitlab cicd 发布流程的则需要安装 gitlab-runner
- gitlab-runner 的安装不需要和 gitlab 在同一台服务启
安装 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
注册 runner
docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
- 输入 gitlab -> settings -> runners 中的 url
- 输入 gitlab -> settings -> runners 中的 token
- 输入描述
- 输入 tags gitlab cicd 的时候要用到
- 选择 runner exector
- 如果是 docker exector
- alpine:latest
配置 maven 挂载
配置后就不用每次都去远程下载 jar
vi /srv/gitlab-runner/config/config.toml
找到 volumes
volumes = ["/var/run/docker.sock:/var/run/docker.sock","/cache","/data/.m2/:/root/.m2/"]
.gitlab-ci.yml 添加
# variables:
# MAVEN_OPTS: "-Dmaven.repo.local=/root/.m2"
配置 docker 私有库 http 访问
配置后访问私有镜像仓库才不会走 https
cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com", "http://hub-mirror.c.163.com"],
"insecure-registries":["192.168.220.40:5005"]
}
重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker