Я пытаюсь настроить nginx внутри docker контейнера. Однако я не могу достичь своего ip сервера без определения номера порта (8000). Кажется, nginx не может прослушивать 80 портов или что-то в этом роде. Я почти перепробовал каждое решение на inte rnet, но оно все равно.
Вот моя docker -compose.yml:
version: '3'
services:
app:
build:
context: .
ports:
- "8000:8000"
env_file:
- django.env
volumes:
- ./app:/app
- /static:/static
command: >
sh -c "python3 manage.py migrate &&
python3 manage.py wait_for_db &&
gunicorn app.wsgi -b 0.0.0.0:8000"
environment:
- DB_HOST=db
- DB_NAME=app
- DB_USER=postgres
- DB_PASS=supersecretpassword
depends_on:
- db
db:
image: postgres:10-alpine
environment:
- POSTGRES_DB=app
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=supersecretpassword
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
- pgconf:/etc/postgresql
- pglog:/var/log/postgresql
nginx:
build: ./nginx
ports:
- "10080:80"
- "10443:443"
volumes:
- ./app:/app
- ./config/nginx:/etc/nginx/conf.d
- /static:/static
expose:
- "8000"
depends_on:
- app
volumes:
pgdata:
driver: local
pgconf:
driver: local
pglog:
driver: local
и nginx конфигурация:
upstream app {
ip_hash;
server my_server_ip:8000;
}
server {
location /static {
autoindex on;
alias /static/
}
location / {
proxy_pass http://app;
}
listen 80;
server_name my_server_ip;
}
Спасибо за помощь.