Добавляем папку для приложения, а так же папки внутри для файлов приложения и конфигурационных файлов
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 в браузере для авторизации.