在Ubuntu上使用Docker容器化部署GitLab是一个相对简单的过程。以下是详细的步骤指南:
安装Docker:确保你的Ubuntu系统上已经安装了Docker。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install docker.io
启动并启用Docker服务:
sudo systemctl start docker
sudo systemctl enable docker
添加GitLab官方GPG密钥:
curl https://packages.gitlab.com/gpg.key | sudo apt-key add -
创建GitLab仓库:
sudo apt install curl openssh-server ca-certificates tzdata perl
sudo curl -L --output /etc/apt/sources.list.d/gitlab_gitlab-ce.list https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu $(lsb_release -cs) main
sudo apt update && sudo apt install gitlab-ce
拉取GitLab Docker镜像:
sudo docker pull gitlab/gitlab-ce:latest
运行GitLab容器: 你可以使用以下命令来运行GitLab容器。请根据你的需求调整配置参数。
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
解释:
--hostname
:设置GitLab的主机名。--publish
:将容器的端口映射到主机的端口。--name
:为容器指定一个名称。--restart always
:设置容器在退出时自动重启。--volume
:挂载卷,用于持久化配置、日志和数据。访问GitLab:
打开浏览器,访问 http://gitlab.example.com
。你应该会看到GitLab的安装向导。按照向导完成初始设置,包括设置管理员密码。
为了安全起见,建议为GitLab配置SSL证书。你可以使用Let’s Encrypt来获取免费的SSL证书。
安装Certbot:
sudo apt install certbot python3-certbot-dns-cloudflare
获取并安装SSL证书:
sudo certbot certonly --webroot --webroot-path=/var/www/certbot --email your-email@example.com --agree-tos --no-eff-email --staging -d gitlab.example.com
配置Nginx反向代理:
编辑Nginx配置文件(通常位于 /etc/nginx/sites-available/gitlab
),添加以下内容:
server {
listen 80;
server_name gitlab.example.com;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
proxy_pass http://localhost:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
重新获取SSL证书:
sudo certbot renew --webroot --webroot-path=/var/www/certbot
完成以上步骤后,你的GitLab实例应该已经成功部署并且可以通过HTTPS访问了。