温馨提示×

docker中linux gitlab配置

小樊
60
2026-09-25 18:02:00
栏目: 智能运维

下面给你一份**在 Docker 中部署和配置 Linux 版 GitLab(CE)**的实用指南,从基础部署到常见配置都有。


一、环境准备

1. 系统要求

  • Linux(Ubuntu / CentOS / Debian 均可)
  • 已安装 Docker 和 Docker Compose
  • 建议内存 ≥ 4GB(GitLab 较吃内存)

2. 安装 Docker(如未安装)

# Ubuntu 示例
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker

二、使用 Docker 运行 GitLab(最简方式)

1. 创建目录

mkdir -p /srv/gitlab/{config,logs,data}

2. 启动 GitLab 容器

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

启动后访问:http://服务器IP
首次登录账号:root
密码在:

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

三、使用 Docker Compose(推荐)

1. 创建 docker-compose.yml

version: '3.6'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: gitlab.example.com
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    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

2. 启动

docker-compose up -d

四、常见配置(gitlab.rb)

配置文件位置:

/srv/gitlab/config/gitlab.rb

修改后执行:

docker exec -it gitlab gitlab-ctl reconfigure

1. 修改访问地址

external_url 'http://192.168.1.100'

2. 修改 SSH 端口(避免与宿主机冲突)

gitlab_rails['gitlab_shell_ssh_port'] = 2222

3. 配置 HTTPS(可选)

external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"

五、数据备份与恢复

备份

docker exec -it gitlab gitlab-rake gitlab:backup:create

备份文件位置:

/srv/gitlab/data/backups/

恢复

docker exec -it gitlab gitlab-rake gitlab:backup:restore BACKUP=备份编号

六、常见问题

1. 访问很慢

  • 增加内存
  • 关闭监控:
prometheus['enable'] = false

2. 端口冲突

  • 修改 ports 或 ssh_port

3. 忘记 root 密码

docker exec -it gitlab gitlab-rails console
user = User.where(id: 1).first
user.password = 'newpassword'
user.save!

如果你有具体需求(如 LDAP、邮件、CI/CD、反向代理 Nginx),可以告诉我,我可以给你定制配置。

0 踩