Перейти к содержимому. | Перейти к навигации

Персональные инструменты

Вы здесь: Главная / Спиричев Вадим / СофтСервис / Установка gitlab в контейнере docker. / Установка gitlab на реальном адресе (https+LetsEncrypt)

Установка gitlab на реальном адресе (https+LetsEncrypt)

Используем инструкцию из документации: https://docs.gitlab.com/ee/install/docker.html

 

1. Установить в .bashrc переменную GITLAB_HOME и перезайти как deploy.

2. sudo mkdir /srv/gitlab; sudo chown deploy.deploy /srv/gitlab

3. В home: mkdir GITLAB; cd GITLAB; joe docker-compose.yml

web:
  image: 'gitlab/gitlab-ee:latest'
  restart: always
  hostname: 'gla.csdiary.net'
  environment:
    GITLAB_OMNIBUS_CONFIG: |
      external_url 'https://gla.csdiary.net'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
# Add any other gitlab.rb configuration here, each on its own line
  ports:
    - '80:80'
    - '443:443'
    - '2224:22'
  volumes:
    - '$GITLAB_HOME/config:/etc/gitlab'
    - '$GITLAB_HOME/logs:/var/log/gitlab'
    - '$GITLAB_HOME/data:/var/opt/gitlab'

 ssh-порт меняем, чтобы не конфликтовал с sshd на хосте!

4. Проверяем, что контейнер запустился

docker ps (может стартовать долго! находится в состоянии Starting, потом будет Helthy)

5. Делаем DNAT на шлюзе для портов gitlab (/etc/shorewall/rules)

DNAT net loc:192.168.10.252:443 tcp 443   -       -       3/sec:10
DNAT net loc:192.168.10.252:80 tcp 80   -       -       3/sec:10

6. Проверяем снаружи доступ на https://gla.csdiary.net

Будет ругаться на сертификат!

7. Включаем генерацию ключей LetsEncrypt

https://docs.gitlab.com/omnibus/settings/ssl.html#lets-encrypt-integration

заходим в контейнер

sudo docker exec -it gitlab_web_1 /bin/bash

в контейнере установил joe, тем самым переопределил ENV-переменную EDITOR (был vi)

выходим и правим конфигурацию gitlab

sudo docker exec -it gitlab_web_1 editor /etc/gitlab/gitlab.rb

...
external_url "https://gla.csdiary.net"
...
################################################################################
# Let's Encrypt integration
################################################################################
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = [ 'z1326593@rambler.ru' ] # This should be

заходим снова в контейнер и переконфигурируем gitlab

sudo docker exec -it gitlab_web_1 /bin/bash

root@gla:/# gitlab-ctl reconfigure

 

 

root@gla:/# gitlab-ctl restart

 

 

можно обновлять ключи LetsEncrypt вручную:

sudo gitlab-ctl renew-le-certs

или настроить автоматическое обновление

8. После перезапуска должен пускать снаружи по https.

9. Пароль для первого входа смотрим в

/srv/gitlab/config/initial_root_password