Ubuntu系统GitLab容器化部署步骤(基于Docker Compose)
sudo apt update && sudo apt upgrade -y,确保系统软件包为最新版本。sudo apt install -y curl openssh-server ca-certificates tzdata perl,安装Docker和Docker Compose所需的依赖。curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -,导入Docker的官方密钥以验证软件包完整性。sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable",将Docker的稳定版软件源添加到系统。sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io,安装Docker社区版(CE)。sudo systemctl enable --now docker,启动Docker服务并设置为开机自动启动。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,下载指定版本的Docker Compose(以1.29.2为例)。sudo chmod +x /usr/local/bin/docker-compose,使Docker Compose具备可执行权限。docker-compose --version,确认输出类似docker-compose version 1.29.2,表示安装成功。mkdir -p /srv/gitlab/{config,logs,data},创建用于存放GitLab配置、日志和数据的目录(可根据需求修改路径)。vim)创建/srv/gitlab/docker-compose.yml,内容如下:version: '3.7'
services:
gitlab:
image: gitlab/gitlab-ce:latest # 使用GitLab社区版最新镜像
container_name: gitlab # 容器名称
restart: always # 开机自动重启
hostname: 'gitlab.example.com' # 容器主机名(需替换为你的域名或IP)
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com' # GitLab外部访问URL(需替换为你的域名或IP)
ports:
- '80:80' # HTTP端口
- '443:443' # HTTPS端口(可选,若未配置SSL可注释)
- '22:22' # SSH端口(默认22,若宿主机22端口被占用可修改为其他端口,如2222)
volumes:
- '/srv/gitlab/config:/etc/gitlab' # 配置文件挂载
- '/srv/gitlab/logs:/var/log/gitlab' # 日志文件挂载
- '/srv/gitlab/data:/var/opt/gitlab' # 数据文件挂载(关键:持久化GitLab数据)
注意:需将
gitlab.example.com替换为你的服务器IP或域名;若修改SSH端口,需同步调整ports和GITLAB_OMNIBUS_CONFIG中的gitlab_rails['gitlab_shell_ssh_port']参数。
/srv/gitlab目录下运行docker-compose up -d,后台启动GitLab容器。docker-compose ps,确认容器状态为Up(运行中);若需查看详细日志,运行docker-compose logs -f。docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password,查看系统生成的root账户初始密码(仅首次登录有效)。http://gitlab.example.com(替换为你的服务器IP或域名),使用root账户和初始密码登录。vim /etc/gitlab/gitlab.rb,修改external_url参数(如external_url 'http://your-domain.com'),然后运行gitlab-ctl reconfigure使配置生效。certbot工具配置SSL(需提前安装Nginx并配置反向代理)。New project,填写项目名称(如test-project),选择Create blank project,完成项目创建。Clone,复制HTTPS或SSH地址(如http://gitlab.example.com/root/test-project.git),在本地终端运行git clone <项目地址>,验证Git功能正常。sudo ufw allow 80/tcp && sudo ufw allow 443/tcp && sudo ufw allow 22/tcp && sudo ufw enable。volumes配置确保了GitLab的配置、日志和数据持久化存储,即使容器删除,数据也不会丢失。shm_size(共享内存大小,默认256MB,可适当增加)。