Mam backend django, w którym używam docking-compose do wdrożenia. Ta aplikacja django używa serwera proxy nginx z przodu.
Kiedy wdrażam go w maszynie dokującej i przechodzę do ip-maszyny, jestem właściwie przekierowany na stronę django.
Ale kiedy wdrażam go na maszynie ubuntudoker, gdy idę do ip kontenera nginx otrzymuję domyślną stronę nginx, nie jestem przekierowany do aplikacji django. Kontener nginx nie rejestruje również żadnego błędu. Wszystkie usługi działają w oknie dokowanym bez żadnego błędu.
Udostępniam plik konfiguracyjny nginx, pliki do tworzenia dokerów poniżej
nginx.conf
server {
listen 80;
server_name omaha;
listen 443 ssl;
ssl_certificate /etc/nginx/ssl/ssl.crt;
ssl_certificate_key /etc/nginx/ssl/ssl.key;
charset utf-8;
client_max_body_size 200M;
location / {
proxy_pass http://web:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
plik dokujący nginx
FROM nginx
COPY conf/nginx.conf /etc/nginx/conf.d/nginx.conf
COPY certs/ /etc/nginx/ssl
docker-compose.yml
version: "2"
services:
nginx:
restart: always
build:
context: ./nginx/
ports:
- "80:80"
- "443:443"
volumes_from:
- web
web:
restart: always
build:
context: ./web
depends_on:
- web_ffmpeg
- postgres
- redis
- rabbitmq
expose:
- "8000"
environment:
- DEBUG=True
command: /usr/local/bin/gunicorn wsgi:application -w 2 -b :8000
web_ffmpeg:
restart: always
build:
context: ./web
depends_on:
- postgres
- redis
- rabbitmq
expose:
- "8000"
command: /usr/local/bin/celery -A trigger worker -l info
postgres:
restart: always
image: postgres:latest
expose:
- "5432"
volumes:
- pgdata:/var/lib/postgresql/data/
redis:
restart: always
image: redis:latest
expose:
- "6379"
volumes:
- redisdata:/data
rabbitmq:
restart: always
image: rabbitmq:3-management
environment:
RABBITMQ_DEFAULT_USER: "adminuser"
RABBITMQ_DEFAULT_PASS: "xxxxxxxxx"
RABBITMQ_DEFAULT_VHOST: "myvhost"
ports:
- "15672:15672"
expose:
- "5672"
volumes:
elk-data:
pgdata:
redisdata:
web-data:
web-ffmpeg-data:
wersje oprogramowania:
Dopasowałem nawet całą wersję między dwiema stacjami roboczymi. Wersje są
- doker 1.12.5, 1.13.0
- docker-compose 1.11.0, 1.11.1
Próbowałem wszystkich kombinacji wersji i nadal istnieje ten sam problem.
Czym różni się używanie komponowania dokerów w maszynie dokującej i bezpośrednio na maszynie ubuntu.
Odpowiedzi:
0 dla odpowiedzi № 1problem był w konfiguracji gunicorn.
Nie przypisałem tego do 0.0.0.0:8000, po prostu powiązałem go z: 8000. to był problem. Nadal nie wiem, dlaczego działało w maszynie