sudo docker run --detach \--hostname gitlab.example.com \--publish 80:80 \--name gitlab \--restart always \--volume $GITLAB_HOME/config:/etc/gitlab \--volume $GITLAB_HOME/logs:/var/log/gitlab \--volume $GITLAB_HOME/data:/var/opt/gitlab \--shm-size 256m \gitlab/gitlab-ee:latest
--publish
第一个端口是本地端口,第二个端口是容器端口,下面的命令最终会让GitLab运行在 80
端口,对外暴露的域名是 gitlab.example.com
,当然对于局域网,要配置dns解析才能用域名访问,可以直接用localhost
或 127.0.0.1
或 主机ip
访问.
docker run -d --name gitlab-runner --restart always \--add-host=gitlab.example.com:192.168.65.135 \-v /srv/gitlab-runner/config:/etc/gitlab-runner \-v /var/run/docker.sock:/var/run/docker.sock \gitlab/gitlab-runner:latest
--add-host=gitlab.example.com:192.168.65.135
是向容器添加dns解析
docker run --rm -it \
--add-host=gitlab.example.com:192.168.65.135 \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner register
注册用到的容器:
gitlab/gitlab-runner
这个镜像/etc/gitlab-runner
,参考回答--rm
退出之后会销毁runner跑ci时拉取不到仓库代码,解析不了域名,需要配置 clone_url
,参考官方文档
# 进入runner容器内
docker exec -it runner容器id /bin/bash# 编辑runner的配置文件
vim /etc/gitlab-runner/config.toml# 添加配置
# clone_url = “http://192.168.65.135/”# 这里还可以为每个镜像都配置额外的host,例如
# extra_hosts = ["other-host:192.168.1.104"]
# 可以在192.168.1.104的8080端口运行一个web服务,然后ci中添加以下script,运行ci看看日志
# curl http://other-host:8080/# 重启runner
gitlab-runner restart