📜  使用 Docker 引擎安装 GitLab - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:06:46.128000             🧑  作者: Mango

使用 Docker 引擎安装 GitLab

如果你需要一份开源的版本控制方案,GitLab 可能是你需要的。它是一个管理 Git 仓库的自托管 Web 应用程序,可以用于跟踪代码更改、协作和版本控制等方面。

在本教程中,我们将介绍如何使用 Docker 引擎来安装 GitLab。

准备工作

在开始安装 GitLab 之前,你需要先确保在你的服务器上已经安装了 Docker 引擎。如果你还没有安装,可以参考 Docker 安装指南 进行安装。

安装 GitLab

以下是一些常见的 GitLab Docker 安装选项:

1. 使用 Docker Compose

你可以使用 Docker Compose 来快速部署 GitLab。

  1. 创建一个名为 docker-compose.yml 的文件,并将以下内容复制到文件中。
version: '3'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com:8929'
        # 更改这里的 port 和 http → https,以启用https
    ports:
      - '8929:8929'
      - '2289:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'

注意:

  • hostname 替换为你的 GitLab 主机名。
  • external_url 是你 GitLab 访问地址的缩写。将其更改为你希望访问 GitLab 时使用的 URL。如果你想使用 https,请使用 external_url 'https://gitlab.example.com:8929'
  • ports 映射的外部端口对应你的 external_url 设置。
  • volumes 挂载目录以保存 GitLab 的配置文件和数据。
  1. 运行 Docker Compose:
$ docker-compose up -d

现在 GitLab 已经可以通过 http://gitlab.example.com:8929 (或者你的 external_url) 访问了。你可以使用默认的管理员用户名和密码进行登录。

2. 使用命令行

你也可以在命令行中使用 Docker 安装 GitLab。

  1. 运行以下命令以克隆 GitLab 仓库并切换到最新标签:
$ git clone https://github.com/gitlabhq/gitlabhq.git /opt/gitlab
$ cd /opt/gitlab
$ git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
  1. 创建名为 config 的配置文件,并将以下内容复制到文件中:
## GitLab生产环境配置文件,从头自己写不如改写默认的配置文件以适应自己的需求
# 修改为实际访问 GitLab 的域名
external_url 'http://localhost:8929'
# 留空时,默认使用 PostgreSQL。当你选择使用 MySQL 时,请取消这个注释。
# 同样也可以选择 MS SQL Server,其中 2017 及以后的版本固定在 /opt/mssql
# 但它未经过完全测试,不建议用于生产环境。
# gitlab向导会初始化整个数据库。注意:mysql不支持 utf8mb4,请使用 PostgreSQL
# 具体请参阅:https://docs.gitlab.com/omnibus/settings/database.html#using-a-non-packaged-database-management-system-rc-only
# 另外,PersonlAccessToken会清空所有访问,需要重新添加 
# 详情请参阅:https://gitlab.com/gitlab-org/gitlab/issues/2944
# production:
#   db_adapter: mysql2
#   db_encoding: utf8mb4
#   db_host: localhost
#   db_port: 3306
#   db_username: root
#   db_password: "password"
#   db_database: gitlabhq_production
#   db_pool: 10
#   db_sslmode: disable

gitlab_rails['db_adapter'] = "postgresql"
gitlab_rails['db_encoding'] = "unicode"
gitlab_rails['db_host'] = "postgres"
gitlab_rails['db_port'] = "5432"
gitlab_rails['db_username'] = "postgres"
gitlab_rails['db_password'] = "mypassword"
gitlab_rails['db_database'] = "gitlabhq_production"

# Redis 配置,两个 docker 容器使用的是同一网络所以可以用 container name
# 单独配置redis,可以参阅:https://docs.gitlab.com/omnibus/settings/redis.html#using-a-non-packaged-redis-system-rc-only
# production:
#   redis_host: localhost
#   redis_port: 6379
#   redis_password: "yourpassword"
gitlab_rails['redis_host'] = 'redis'
  1. 运行以下命令以启动 GitLab:
$ docker run --detach \
  --hostname gitlab.example.com \
  --publish 8929:8929 --publish 2289: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

这会启动 GitLab 并将数据卷挂载到本地目录中。更改 hostname,修改 docker run 命令中的端口映射以适应你的环境。

现在 GitLab 已经可以通过 http://localhost:8929 访问了。你可以使用默认的管理员用户名和密码进行登录。

结论

使用 Docker 引擎安装 GitLab 是一种快速轻松的安装方法。无论是使用 Docker Compose 还是命令行,这里提供了你需要快速启动 GitLab 的一些最佳实践。

如果你对 GitLab 有一定了解,并且正在使用或者计划使用 GitLab,你可以参考这些最佳实践以优化 GitLab 部署。