Как связать gitlab и nginx контейнеры?

есть docker-compose.yml:
version: '3'
services:
    php:
        container_name: "php"
        build: ./php/
        expose:
            - "9000"
        ports:
            - "9000:9000"
        links:
            - mysql
            - memcached
            - adminer
        volumes:
            - ./www:/var/www
            - ./php:/usr/local/etc/php
        restart: always
    nginx:
        restart: always
        image: nginx:latest
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - ./hosts:/etc/nginx/conf.d
            - ./www:/var/www
            - ./logs:/var/log/nginx
        depends_on:
            - php
            - gitlab
        links:
            - php
            - gitlab:gitlab
    mysql:
        restart: always
        image: mysql
        ports:
            - "3306:3306"
        volumes:
            - ./mysql:/var/lib/mysql
        environment:
            MYSQL_ROOT_PASSWORD: root
    adminer:
        image: adminer
        restart: always
        ports:
            - 8080:8080
        links:
            - mysql
    memcached:
        image: memcached 
        expose:
            - "11211"
        ports:
          - "11211:11211"
        restart: always
    gitlab:
        restart: always
        container_name: "gitlab"
        image: 'gitlab/gitlab-ce:latest'
        restart: always
        hostname: 'gitlab.loc'
        environment:
            GITLAB_OMNIBUS_CONFIG: |
              gitlab_rails['gitlab_shell_ssh_port']=22;
        ports:
            - '0.0.0.0:32781:80'
            - '4430:443'
            - '22:22'  
        volumes:
            - './gitlab/config:/etc/gitlab'
            - './gitlab/logs:/var/log/gitlab'
            - './gitlab/data:/var/opt/gitlab'
        expose:
            - "8091"


так-же есть конфиг nginx:
server {
    listen 80;
    server_name gitlab.loc;
    error_log  /var/log/nginx/nginx_error.log;
    access_log /var/log/nginx/nginx_access.log;

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://localhost:32781;  
    }
}


Пробовал вместо localhost писать и ip контейнера с gitlab и имя контейнера и локальный хост - всегда отдаёт 502 ошибку.
При этом по адресу gitlab.loc:32781 контейнер отвечает.

Подскажите, как заставить nginx проксировать запросы к gitlab?
  • Вопрос задан
  • 327 просмотров
Пригласить эксперта
Ответы на вопрос 3
Попробуйте указать так:
proxy_pass http://gitlab:32781;
Ответ написан
@m_kostelcev
proxy_pass http://gitlab.loc:32781
При этом, с машины, на которой крутится сервер nginx - по адресу выше должно все открываться.
Ответ написан
@EgorLyutov
proxy_pass http://gitlab:80;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы