Создаём необходимые папки:
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!