Запуск GitLab с помощью Docker Compose и Traefik в качестве обратного прокси


Создаём необходимые папки:

mkdir -p gitlab/config gitlab/data /var/log/gitlab && cd gitlab

Добавьте файл docker-compose.yml и заполните содержимым:

cat <<EOF > docker-compose.yml
version: '3.5'

services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: "gitlab"
    hostname: gitlab.yourdomain
    restart: unless-stopped
    healthcheck:
      disable: true
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.yourdomain'
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
        nginx['proxy_set_headers'] = {
          "X-Forwarded-Proto" => "https",
          "X-Forwarded-Ssl" => "on"
        }
        gitlab_rails['gitlab_shell_ssh_port'] = 8022
        gitlab_rails['smtp_enable'] = false

    ports:
      - "8022:8022"

    volumes:
      - ./config:/etc/gitlab:rw
      - ./data:/var/opt/gitlab:rw
      - /var/log/gitlab:/var/log/gitlab:rw

    labels:
      - traefik.enable=true
      - traefik.http.middlewares.gitlab_https.redirectscheme.scheme=https
      - traefik.http.routers.gitlab.entrypoints=web
      - traefik.http.routers.gitlab.middlewares=gitlab_https@docker
      - traefik.http.routers.gitlab.rule=Host(\`gitlab.yourdomain\`)
      - traefik.http.routers.gitlab_https.entrypoints=websecure
      - traefik.http.routers.gitlab_https.rule=Host(\`gitlab.yourdomain\`)
      - traefik.http.routers.gitlab_https.tls=true
      - traefik.http.services.gitlab.loadbalancer.server.port=80

networks:
  default:
    external:
      name: traefik_network
EOF

Перед запуском контейнера, замените yourdomain на ваше доменное имя в следующих местах файла:

  • hostname: gitlab.yourdomain
  • external_url 'https://gitlab.yourdomain'
  • Все метки Host(\gitlab.yourdomain`)под настройкамиlabels`

После внесения изменений запустите контейнер:

docker-compose up -d

Чтобы получить временный пароль для пользователя root, выполните следующую команду:

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

Откройте браузер и перейдите по адресу https://gitlab.yourdomain. Войдите в систему, используя временный пароль для root.


Теперь GitLab готов к использованию с поддержкой HTTPS через Traefik!