GitLab在Linux上的容器化实践主要围绕Docker及Docker Compose工具,通过镜像部署、数据持久化、端口映射、配置优化等步骤,实现GitLab的高效、一致运行。以下是具体实践要点:
apt、CentOS的yum)或官方脚本安装Docker CE(社区版),并设置开机自启。例如Ubuntu系统可使用:sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io。sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose。docker-compose.yml文件:定义GitLab服务及资源配置,核心内容包括:
gitlab/gitlab-ce:latest(社区版)或gitlab/gitlab-ee:latest(企业版);gitlab(便于管理);restart: always(确保容器随宿主机重启自动启动);80(HTTP)、443(HTTPS)、22(SSH)端口映射到容器的对应端口;config(配置)、logs(日志)、data(数据)目录挂载到容器的/etc/gitlab、/var/log/gitlab、/var/opt/gitlab,实现数据持久化;shm_size(共享内存,建议256MB以上,避免GitLab运行缓慢)。version: '3.6'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
ports:
- '5480:80'
- '5443:443'
- '5022:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
shm_size: '256m'
```。
docker-compose.yml所在目录执行docker-compose up -d,后台启动GitLab容器。docker pull gitlab/gitlab-ce:latest。docker run命令指定参数,例如:docker run -d --name gitlab --restart always -p 8443:443 -p 8080:80 -p 2222:22 -v /path/to/config:/etc/gitlab -v /path/to/logs:/var/log/gitlab -v /path/to/data:/var/opt/gitlab gitlab/gitlab-ce:latest。docker exec -it gitlab cat /etc/gitlab/initial_root_password,获取root用户的初始密码(用于首次登录)。http://<宿主机IP>:5480(若修改了端口映射,则使用对应端口),使用root账号及初始密码登录。/etc/gitlab/gitlab.rb文件,设置external_url参数(如external_url 'http://gitlab.example.com'),然后执行gitlab-ctl reconfigure使配置生效。config、logs、data目录到宿主机,避免容器删除后数据丢失。80、443、22端口未被占用,且防火墙(如firewalld、iptables)放行这些端口。gitlab.rb文件,开启letsencrypt['enabled'] = true,并设置联系邮箱,然后执行gitlab-ctl reconfigure。