您的位置:

使用Docker搭建GitLab

一、安装Docker

在Ubuntu系统上,我们可以使用apt-get命令安装Docker,具体操作如下:

sudo apt-get update
sudo apt-get install -y docker.io

为了避免每次使用Docker命令都需要sudo,可以将当前用户加入docker组:

sudo usermod -aG docker $USER

再重新登录一次即可。

二、拉取GitLab镜像

执行下面的命令从Docker Hub上拉取GitLab CE镜像:

docker pull gitlab/gitlab-ce:latest

三、创建GitLab容器

为了避免容器内部产生数据被删除,我们需要将GitLab的数据目录映射到宿主机的一个目录中。这里我们将GitLab数据存储在宿主机的/home/gitlab-data目录下。

执行下面的命令创建一个GitLab容器:

docker run -d \
-v /home/gitlab-data/config:/etc/gitlab \
-v /home/gitlab-data/logs:/var/log/gitlab \
-v /home/gitlab-data/data:/var/opt/gitlab \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab \
--restart always \
gitlab/gitlab-ce:latest

命令说明:

  • -d:后台运行容器
  • -v:将宿主机目录挂载到容器内部
  • -p:端口映射,将容器内部的443、80和22端口映射到宿主机的443、80和22端口上
  • --name:指定容器名称为gitlab
  • --restart:容器重启策略,这里设置为always
  • gitlab/gitlab-ce:latest:指定所使用的GitLab镜像

容器启动后,可以使用命令docker ps查看当前正在运行的容器:

docker ps

如果GitLab容器运行正常,则可以通过访问宿主机的IP地址或者域名:http://your-ip/访问GitLab。

四、使用GitLab

GitLab的管理员账号默认为root,管理员账号的密码可以在容器中找到:

docker logs gitlab | grep 'Password:'

使用root账号登录后,即可创建项目、添加成员等操作。

五、使用Docker Compose

Docker Compose是一个用于定义和运行复杂应用程序的工具。我们可以使用Docker Compose来管理多个容器,比如同时启动GitLab和MySQL容器。

下面是一个使用Docker Compose搭建GitLab的例子:

version: '3'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    restart: always
    hostname: gitlab.example.com
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'
    ports:
      - "80:80"
      - "443:443"
      - "2222:22"
    volumes:
      - /srv/gitlab/config:/etc/gitlab
      - /srv/gitlab/logs:/var/log/gitlab
      - /srv/gitlab/data:/var/opt/gitlab

再执行下面的命令即可启动GitLab容器:

docker-compose up -d

此时,GitLab将会运行在本地的80、443和2222端口上,即可在浏览器中访问。

六、注意事项

在使用Docker搭建GitLab时,有一些需要注意的地方:

  • 建议使用官方提供的镜像,保证容器的稳定性和安全性;
  • 为了不丢失GitLab中的数据,需要将GitLab的数据目录映射到宿主机的一个目录中;
  • 通过环境变量来配置GitLab的一些参数;
  • 在使用Docker Compose时,需要配置正确的网络连接,避免多个容器之间无法通信。