本次安装 社区版(Community Edition,缩写为 CE)
首先下载gitlab社区版镜像(gitlab/gitlab-ce),镜像比较大,建议docker切换国内镜像
$ docker pull gitlab/gitlab-ce
方便修改配置,存储备份数据,方便后期升级,通常映射三个文件夹:配置 (etc) 、 日志 (log) 、数据 (data)
# 配置文件
$ mkdir -p /usr/local/docker/gitlab/config
# 日志文件
$ mkdir -p /usr/local/docker/gitlab/logs
# 数据
$ mkdir -p /usr/local/docker/gitlab/data
$ docker run --detach \
--hostname 192.168.0.243 \
--publish 7001:443 --publish 7002:7002 --publish 7003:22 \
--name gitlab --restart always \
--privileged=true
--volume /usr/local/docker/gitlab/config:/etc/gitlab \
--volume /usr/local/docker/gitlab/logs:/var/log/gitlab \
--volume /usr/local/docker/gitlab/data:/var/opt/gitlab \
docker.io/gitlab/gitlabce:latest
说明
gitlab需要的资源比较多,建议4g内存4核,安装时间比较长,无需担心
# 查看已运行的容器
$ docker ps -a
查看gitlab容器,有一个属性 STATUS 为 health: starting,说明 正在启动中,还没有启动完毕。状态变成 healthy ,说明已经部署完成,可以访问了。
由于咱们进行了端口的映射,但是gitlab的端口还是原先的,所以需要修改成最新的配置
修改/usr/local/docker/gitlab/config文件下的gitlab.rb文件
# 远程访问的域名或ip 例如http://192.168.0.243、http://radon.com、http://gitlab.radon.com、http://radon.com/gitlab
# 此处为http访问地址和端口号,如需修改端口号从此处配置,否则为80,不建议进行端口映射
external_url 'http://192.168.0.243:7002'
# ssh链接的域名或ip
gitlab_rails['gitlab_ssh_host'] = '192.168.0.243'
# ssh的端口号
gitlab_rails['gitlab_shell_ssh_port'] = 7003
邮箱设置,修改/usr/local/docker/gitlab/config文件下的gitlab.rb文件
### Email
gitlab_rails['smtp_enable'] = true # 开启 SMTP 功能
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465 # 端口不可以选择587,测试过会发送邮件失败
gitlab_rails['smtp_user_name'] = "[email protected]" # 你的邮箱账号
gitlab_rails['smtp_password'] = "123321" # 授权码,不是密码
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '[email protected]' # 发件人信息,必须跟‘smtp_user_name’保持一致,否则报错
gitlab_rails['smtp_domain'] = "qq.com" # 修改并不影响
方法一:不进入容器
# 刷新配置
$ docker exec gitlab gitlab-ctl reconfigure
# 重启gitlab
$ docker container restart gitlab
方法二:进入容器
# 进去gitlab容器内
$ docker exec -it gitlab /bin/bash
# 重置gitlab配置
$ gitlab-ctl reconfigure
# 刷新gitlab的配置
$ docker exec gitlab gitlab-ctl reconfigure
# 重启gitlab服务(建议使用docker container restart gitlab)
$ docker exec gitlab gitlab-ctl restart
# 查看gitlab运行状态
$ docker exec gitlab gitlab-ctl status
# 停止gitlab服务(建议使用docker container stop gitlab)
$ docker exec gitlab gitlab-ctl stop
# 查看gitlab运行日志(建议使用docker logs gitlab)
$ docker exec gitlab gitlab-ctl tail
# 进入gitlab容器
$ docker exec -it gitlab /bin/bash
# 备份数据(备份数据在data/backups文件夹下)
$ gitlab-rake gitlab:backup:create
# 停止gitlab容器
$ docker container stop gitlab
# 移除gitlab容器
$ docker rm gitlab
# 下载最新镜像
$ docker pull gitlab/gitlab-ce
# 运行镜像,此命令与旧版安装命令一致,保证配置和文件映射相同
$ docker run --detach \
--hostname 192.168.0.243 \
--publish 7001:443 --publish 7002:80 --publish 7003:22 \
--name gitlab --restart always \
--privileged=true
--volume /usr/local/docker/gitlab/config:/etc/gitlab \
--volume /usr/local/docker/gitlab/logs:/var/log/gitlab \
--volume /usr/local/docker/gitlab/data:/var/opt/gitlab \
docker.io/gitlab/gitlabce:latest
建议进行同版本的备份与恢复
# 进入gitlab容器
$ docker exec -it gitlab /bin/bash
# 备份数据(备份数据在data/backups文件夹下)
$ gitlab-rake gitlab:backup:create
# 恢复备份(备份数据在data/backups文件夹下)
$ gitlab-rake gitlab:backup:restore BACKUP=备份文件编号