Docker compose [emerg] 1 # 1: хост не найден в восходящем "приложении" в /etc/nginx/conf.d/default.conf:9 - PullRequest
2 голосов
/ 06 августа 2020

Я пытаюсь разработать приложение Django с Nginx и докеризовать его. При запуске docker compose я получаю сообщение об ошибке

proxy_1  | 2020/08/05 21:34:49 [emerg] 1#1: host not found in upstream "app" in /etc/nginx/conf.d/default.conf:9
proxy_1  | nginx: [emerg] host not found in upstream "app" in /etc/nginx/conf.d/default.conf:9
django_proj_proxy_1 exited with code 1

Это мой docker файл:

FROM ubuntu:20.04

ENV TZ=America/New_York
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get update -y && \
    apt-get install -y  python3-pip  python-dev && \
    apt-get install -y wget


RUN python3 -m pip install --upgrade pip


ENV PATH="/scripts:${PATH}"

COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt


RUN mkdir /app
COPY ./app /app
WORKDIR /app
COPY ./scripts /scripts

RUN chmod +x /scripts/*

RUN mkdir -p /vol/web/media
RUN mkdir -p /vol/web/static

CMD ["entrypoint.sh"] 

Это мой docker файл compose:

version: '3.7'

services:
    app:
        build:
            context: .
        volumes:
            - static_data:/vol/web 
        environment:
            - SECRET_KEY=samplesecretkey123
            - ALLOWED_HOSTS=127.0.0.1, localhost, 0.0.0.0 
        
    proxy:
        build:
            context: ./proxy
        volumes:    
            - static_data:/vol/static
        ports:
            - "8080:8080"
        depends_on: 
            - app 

volumes:
    static_data:

У меня также есть папка с именем proxy, которая содержит default.conf, Dockerfile, uwsgi_params в том же каталоге.

default.config:

server {
    listen 8080;

    location /static {
        alias /vol/static;
    }

    location / {
        uwsgi_pass app:8000;
        include /etc/nginx/uwsgi_params;
    }
}

Dockerfile:

FROM nginxinc/nginx-unprivileged:1-alpine 

COPY ./default.conf /etc/nginx/conf.d/default.conf
COPY ./uwsgi_params /etc/nginx/uwsgi_params

USER root

RUN mkdir -p /vol/static
RUN chmod 755 /vol/static

USER nginx
...