Назад | Перейти на главную страницу

Настройте контейнер GitLab Docker с помощью Plesk и LetsEncrypt

Привет, у меня проблема с настройкой GitLab.

Чего я пытаюсь достичь:

Что я сделал до сих пор:

Я совершенно новичок в серверных envs и Docker, поэтому я не уверен в необходимой структуре вещей. Может вы знаете, что делать?

Спасибо!

Эта настройка работает для меня:

  1. создать субдомен из Plesk (например, gitlab.mydomain.com)
  2. выберите свой сертификат Let's Encrypt в «Настройках хостинга» и обязательно установите постоянное перенаправление 301 на HTTPS (просто установите флажок)
  3. при запуске контейнера Docker откройте порт 80 (например, 80: 10080)
  4. в «Настройки Apache и nginx» добавьте следующее:
location / {
    proxy_pass http://localhost:10080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
}

Это будет обслуживать ваш поддомен через HTTPS и ваш сертификат Let's Encrypt, одновременно передавая запросы на порт 80 вашего контейнера, поэтому вам не нужно беспокоиться о передаче сертификата в GitLab извне контейнера.

Насколько я понимаю, это безопасно, поскольку незашифрованный трафик ограничен сервером (если ваш демон Docker находится на том же сервере, что и Plesk) и недоступен извне.

-

Для вашего последнего пункта

возможность запускать задачи сборки в контейнере GitLab (сценарии npm и т. д.) и, наконец, перемещать определенные выходные файлы в каталоги поддоменов, управляемых Plesk (вне контейнера)

это уже отдельный вопрос.

Для запуска сборок вам необходимо установить GitLab Runner. В документации GitLab предлагается установить его на другом хосте, но вы можете попробовать использовать их Образ докера на том же хосте.

Для создания и развертывания ваших приложений см. GitLab Runner. документы. Вам нужно будет настроить «конвейеры» для так называемого «непрерывного развертывания».

Чтобы создать поддомен для каждого приложения, вы можете:

  • создать поддомены вручную из Plesk и развернуть файлы с помощью сценариев в качестве последнего шага вашей «конвейерной» сборки
  • использовать сценарии и API Plesk для автоматического создания субдоменов
  • игнорировать Plesk и перейти на полную версию Docker; используйте обратный прокси, который будет обрабатывать все ваши поддомены и сертификаты Let's Encrypt, например Traefik

Это всего лишь указатели, предлагаю вам поискать и прочитать больше о CI / CD.