Сборка контейнера с GitLab для работы через обратный прокси Traefik

Добавляем папку для приложения, а так же папки внутри для файлов приложения и конфигурационных файлов

    mkdir gitlab
    mkdir gitlab/config
    mkdir gitlab/data
    mkdir /var/log/gitlab

Переходим в папку и добавляем фаил docker-compose.yml

    cd gitlab
    touch docker-compose.yml
    cat > 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:
          - /gitlab/config:/etc/gitlab:rw
          - /gitlab/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

Заменяем yourdomain на ваше доменное имя а SSH доступен на порту 8022

Пароль от root можно получить следующей командой на сервере:

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

Открываем сайт git.yourdomain в браузере для авторизации.