docker创建gitlab容器反复重启

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker创建gitlab容器反复重启相关的知识,希望对你有一定的参考价值。

参考技术A docker pull gitlab/gitlab-ce

docker images

运行容器,使用gitlab镜像

docker run --detach --privileged=true --hostname 192.168.1.10 --publish 7001:443 --publish 7002:80 --publish 7003:22 --name gitlab --restart always --volume /home/gitlab/config:/etc/gitlab --volume /home/gitlab/logs:/var/log/gitlab --volume /home/gitlab/data:/var/opt/gitlab e2063cf6f55c

docker exec -u root -it <container_id> /bin/bash

登录后发现很快docker容器就会重启

权限错误问题:0770 = 2770

解决办法:vi /home/gitlab/config/gitlab.rb 

git_data_dirs修改如下:

重启docker : docker restart <container_id>

Docker部署GitLab

Docker部署GitLab

环境

host: CentOS7 4.14内存
docker: 18.09.9-ce
gitlab: 最新版本(1.12+版本)

1.安装docker环境

自行搜索如何安装docker,尽量按照较新版本的docker

2.拉取gitlab镜像

# 拉取镜像
docker pull gitlab/gitlab-ce

3.定义配置文件

# 打开挂载的配置目录
vim /srv/gitlab/config/gitlab.rb

###################################################
# 添加外部请求的域名(如果不支持https, 可以改成http)
external_url 'https://gitlab.evescn.com'
# 修改gitlab对应的时区 
gitlab_rails['time_zone'] = 'PRC'
# 开启邮件支持 
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'gitlab@evescn.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'
# 配置邮件参数
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "gitlab@evescn.com"
gitlab_rails['smtp_password'] = "xxxxxx"
gitlab_rails['smtp_domain'] = "evescn.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false        
###################################################

4.创建数据日志挂载目录

mkdir /evescn/gitlab/data -pv
mkdir /evescn/gitlab/log -pv
mkdir /evescn/gitlab/config -pv

5.启动容器

# 启动
docker run --detach --publish 22443:443 --publish 2280:80  --publish 2222:22 --name gitlab --memory 4g --restart always --volume /evescn/gitlab/config:/etc/gitlab --volume /evescn/gitlab/logs:/var/log/gitlab --volume /evescn/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
# 配置详情

--publish 暴露了容器的三个端口, 分别是https对应的443, http对应80以及ssh对应的22(如果不需要配置https, 可以不暴露)
--memory 限制容器最大内存暂用4G, 这是官方推荐的
--volume 指定挂载目录, 这个便于我们在本地备份和修改容器的相关数据

6.(选配) 配置https

如果配置了https, 需要导入证书

# 进入挂载配置目录
cd /evescn/gitlab/config
# 创建密钥文件夹, 并放入证书
mkdir ssl
cd /ssl
# 上传域名证书文件

7.重启服务

# 方法一: 重启容器(其中xxxxxx是容器id)
docker restart xxxxxx

# 方法二: 登陆容器, 重启配置
docker exec -it  xxxxxx bash   
gitlab-ctl reconfigure
gitlab-ctl restart

8.写在最后

- 通过ssh方式拉取代码时, 记住端口号是2222, 不是默认的22
- 如果没有配置https, 是无法通过https路径拉取代码的

转载或借鉴文档

https://www.jianshu.com/p/786c0a7a49d4

以上是关于docker创建gitlab容器反复重启的主要内容,如果未能解决你的问题,请参考以下文章

nginx 的 gitlab 容器代理传递不适用于推送请求

Docker常用命令整理

Docke及Docker Compose于微服务的实践

Docker部署GitLab

如何使用 docker-compose 重启单个容器

Docker 查询停止删除和重启容器