NGINX
В вашей конфигурации nginx добавьте proxy_set_header
и измените proxy_pass
следующим образом:
location /gitlab/ {
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:3000/gitlab/;
}
GITLAB
Что вам нужно, так это относительный URL конфигурация в GitLab.
Если у вас GitLab в версии 8.5 или выше, выполните одно из следующих действий в зависимости от типа развертывания GitLab:
Развертывание DOCKER-COMPOSE
Добавить переменную среды external_url
в файл docker-compose.yml
, пример файла:
gitlab:
image: 'gitlab/gitlab-ce:11.5.2-ce.0'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://apps.mycompany.com/gitlab/'
ports:
- '3000:80'
Затем перезапустите докер GitLab:
docker-compose up -d
Развертывание DOCKER
Если вы не используете docker-compose (что я настоятельно рекомендую), тогда вы можете добавить опцию external_url
к вашей команде docker run
, пример выполнения:
docker run --detach --publish 3000:80 --restart always --env GITLAB_OMNIBUS_CONFIG="external_url 'http://apps.mycompany.com/gitlab/'" gitlab/gitlab-ce:11.5.2-ce.0
Обновление файлов конфигурации GitLab - может использоваться во всех видах развертываний
Другой подход заключается в прямом изменении файла конфигурации GitLab, но я бы порекомендовал это для автономных установок GitLab, а не для развертывания докеров.
Изменить конфигурацию GitLab в /etc/gitlab/gitlab.rb
, изменить значение external_url
на следующее:
external_url "http://apps.mycompany.com/gitlab"
После этого изменения вам нужно перенастроить GitLab:
sudo gitlab-ctl reconfigure
Затем перезапустите службу:
sudo gitlab-ctl restart
Более подробную информацию о конфигурации GitLab вы можете найти в официальной документации .
Рекомендую также проверить GitLab при развертывании докера Официальная документация .
Обратите внимание, что относительная поддержка URL в Omnibus GitLab экспериментальная и была введена в версии 8.5 (для более ранней версии вам необходимо скомпилировать ее из исходного кода - doc ).