gitlab镜像拉取
# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本
$ docker pull gitlab/gitlab-ce
创建dockerfile
$ mkdir /app/dockerfile/git
$ vim /app/dockerfile/git/docker-compose.yaml
$ chmod 755 /app/dockerfile/git/docker-compose.yaml
写入以下内容
version: '3'
services:
git:
image: gitlab/gitlab-ce
container_name: gitlab
restart: always
ports:
- "8443:443"
- "8880:80"
- "8822:22"
volumes:
- ./config:/etc/gitlab
- ./logs:/var/log/gitlab
- ./data:/var/opt/gitlab
networks:
default:
external:
name: appnet
启动容器
$ docker network create appnet
# 加-d表示后台执行,否则为前台执行
$ docker-compose up -d
# 查看容器运行情况
$ docker ps
配置
配置完成后gitlab容器可以正常运行,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb(/app/dockerfile/git/config/gitlab.rb)
$ vim /app/dockerfile/git/config/gitlab.rb
修改或插入一下内容,配置默认为注释状态
# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://git.xxx.com'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'git.xxx.com'
gitlab_rails['gitlab_shell_ssh_port'] = 8822
配置Nginx
若上一步中,配置了访问域名(git.xxx.com),则按上面的配置,通常还需要对Nginx进行配置,在Nginx配置中增加以下服务器配置
server {
listen 80;
server_name git.xxx.com;
client_max_body_size 500M;
location / {
proxy_pass http://localhost:8880;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
配置完成后,通过http://git.xxx.com地址,即可正常访问服务
网友评论