在Ubuntu上使用Docker容器化部署GitLab是一个相对简单的过程。以下是详细的步骤:
安装Docker:确保你的Ubuntu系统上已经安装了Docker。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install docker.io
启动并启用Docker服务:
sudo systemctl start docker
sudo systemctl enable docker
添加GitLab官方Docker镜像仓库:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt update
创建GitLab配置文件:
创建一个名为gitlab.rb
的配置文件,并进行必要的配置。例如:
sudo nano /etc/gitlab/gitlab.rb
在文件中添加或修改以下内容:
external_url 'http://your-gitlab-domain.com'
gitlab_rails['lfs_enabled'] = true
gitlab_rails['gitlab_shell_ssh_port'] = 2222
gitlab_rails['gitlab_rails']['gitlab_shell_ssh_port'] = 2222
重新配置并重启GitLab: 运行以下命令来应用配置并重启GitLab容器:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
访问GitLab:
打开浏览器,访问你在gitlab.rb
文件中配置的external_url
地址,例如http://your-gitlab-domain.com
。
登录GitLab:
默认情况下,GitLab的初始管理员用户名是root
,密码是在安装过程中生成的。你可以在/etc/gitlab/initial_root_password
文件中找到这个密码:
cat /etc/gitlab/initial_root_password
为了提高安全性,建议为GitLab配置SSL证书。你可以使用Let’s Encrypt免费获取SSL证书,并使用Certbot进行配置。
安装Certbot:
sudo apt install certbot python3-certbot-docker
获取并配置SSL证书:
sudo certbot certonly --webroot --webroot-path=/var/www/gitlab --email your-email@example.com --agree-tos --no-eff-email --staging -d your-gitlab-domain.com
更新GitLab配置:
编辑/etc/gitlab/gitlab.rb
文件,添加以下内容:
nginx['ssl_certificate'] = "/etc/letsencrypt/live/your-gitlab-domain.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/your-gitlab-domain.com/privkey.pem"
nginx['ssl_protocols'] = "TLSv1.2 TLSv1.3"
nginx['ssl_ciphers'] = "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA"
nginx['ssl_prefer_server_ciphers'] = true
重新配置并重启GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
完成以上步骤后,你的GitLab实例应该已经成功部署并可以通过HTTPS访问了。