Пытаюсь настроить Gitlab через файл docker-compose.Но я не могу получить доступ.Я видел подобные вопросы здесь, но ни один из них не работал для меня. Вот мой файл docker-compose
version: '2'
services:
nginx:
container_name: nginx_loadbalance
restart: always
image: nginx
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
ports:
- 443:443
- 80:80
volumes:
- ./nginx:/etc/nginx/conf.d:ro
- ./nginx/ssl:/etc/nginx/ssl:ro
- ./pass:/etc/nginx/pass:ro
links:
- gitlab
redis:
image: sameersbn/redis:latest
container_name: redis
volumes:
- /mnt/mgdata/volumes/redis:/var/lib/redis:Z
postgresql:
image: sameersbn/postgresql:latest
container_name: postgresql
volumes:
- /mnt/mgdata/volumes/postgresql:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm
gitlab:
image: sameersbn/gitlab:latest
container_name: gitlab
links:
- redis
- postgresql
volumes:
- /mnt/mgdata/volumes/gitlab:/home/git/data:Z
environment:
- DEBUG=true
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- REDIS_HOST=redis
- REDIS_PORT=6379
- TZ=Asia/Kolkata
- GITLAB_TIMEZONE=Kolkata
- GITLAB_HTTPS=true
- SSL_SELF_SIGNED=true
- GITLAB_HOST=www.mydomain.com
- GITLAB_PORT=5001
- GITLAB_SSH_PORT=10022
- GITLAB_RELATIVE_URL_ROOT=/gitlab
- GITLAB_SECRETS_DB_KEY_BASE=dc0nqwd6m7mnEmRf51VJ
- GITLAB_SECRETS_SECRET_KEY_BASE=ARSoM4HfImdTV1OTRfLC
- GITLAB_SECRETS_OTP_KEY_BASE=mqQmwgmIuu2SyVv3sJXB
- GITLAB_ROOT_PASSWORD=gitlab123
- GITLAB_ROOT_EMAIL=myemail.gmail.com
- GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
- GITLAB_NOTIFY_PUSHER=false
- GITLAB_EMAIL=mygmail.gmail.com
- GITLAB_EMAIL_REPLY_TO=mygmail.gmail.com
- GITLAB_INCOMING_EMAIL_ADDRESS=mygmail.com
- GITLAB_BACKUP_SCHEDULE=monthly
- GITLAB_BACKUP_TIME=04:00
ports:
- "10080:80"
- "10022:22"
- "5001:443"
expose:
- "5001"
Вот мой файл конфигурации Nginx:
upstream gitlab{
server gitlab:5001;
}
server {
server_name myIpAddress mydomain.com;
listen 80;
server_name _;
return 301 https://$host$request_uri;
}
server {
server_name myIpAddress mydomain.com;
listen 443 ssl http2;
listen [::]:443 ssl http2;
# add Strict-Transport-Security to prevent man in the middle attacks
add_header Strict-Transport-Security "max-age=31536000";
error_log /var/log/nginx/error.log warn;
proxy_set_header Host $http_host; # required for Docker client sake
proxy_set_header X-Real-IP $remote_addr; #pass on real client IP
client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads
# required to avoid HTTP 411: see issue #1486 (https://github.com/dotcloud/docker/issues/1486)
chunked_transfer_encoding on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
ssl_session_cache shared:SSL:50m;
ssl_prefer_server_ciphers on;
#ssl_prefer_server_ciphers on;
#ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
#ssl_ecdh_curve secp384r1;
#ssl_session_cache shared:SSL:10m;
#ssl_session_tickets off;
#ssl_stapling on;
# Disable preloading HSTS for now. You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
#add_header X-Frame-Options DENY;
#add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/nginx/ssl/certs/dhparam.pem;
location / {
proxy_set_header X-Real-IP $http_referer;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_pass https://gitlab;
proxy_http_version 1.1;
}
}
Когда я запускаю * 1007Команда * docker ps Я вижу, что все контейнеры запущены и работают.Даже я проверил журналы все хорошо.Когда я пытаюсь получить доступ к Gitlab, в моем браузере появляется ошибка неверного шлюза 502.
Вот Баланс нагрузки Nginx Журналы контейнера:
connect() failed (111: Connection refused) while connecting to upstream, client: clientIp, server: serverIp, request: "GET /favicon.ico HTTP/2.0", upstream: "https://172.27.0.4:5001/favicon.ico", host: "mydomain.com"
Будь мойсомнение верное или нет, я не знаю, но когда я запускаю docker, ps может видеть 0.0.0.0:port перед отображением портов для всех контейнеров, но для nginx_loadbalance я не могу видеть это до 5001. Я не могу выяснить, чтопроблема.
Вот результат команды docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ec151703cf28 nginx "nginx -g 'daemon of…" 16 minutes ago Up 16 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx_loadbalance
360f49185a16 sameersbn/gitlab:latest "/sbin/entrypoint.sh…" 16 minutes ago Up 16 minutes 5001/tcp, 0.0.0.0:10022->22/tcp, 0.0.0.0:10080->80/tcp, 0.0.0.0:5001->443/tcp gitlab
50049db6c6b4 sameersbn/postgresql:latest "/sbin/entrypoint.sh" 16 minutes ago Up 16 minutes 5432/tcp postgresql
38f3bd8eab4e sameersbn/redis:latest "/sbin/entrypoint.sh" 16 minutes ago Up 16 minutes 6379/tcp redis