фляга + nginx + gunicorn с ошибкой запуска докера - PullRequest
0 голосов
/ 12 декабря 2018

Я использую колбу + nginx + gunicorn в докере, но когда я захожу на http://127.0.0.1 на моем компьютере.Это согласно Welcome to nginx!Не моя страница указателя flask_app.

app.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)

flask_nginx.conf

server {
   listen  80;
   server_name 120.0.0.1;

   location  /  {
      proxy_pass   http://127.0.0.1:8001;
   }
  }

supervisor.conf

[program:nginx-app]
command = /usr/sbin/nginx -g "daemon off;"
stdout_logfile = /var/log/supervisor/nginx_stdout.log
stdout_logfile_maxbytes = 10MB
stderr_logfile = /var/log/supervisor/nginx_error.log
stderr_logfile_maxbytes = 10MB

[program:app-gunicorn]
command = /usr/local/bin/gunicorn -w 4 -b 127.0.0.1:8001 app:app
directory = /app
stdout_logfile = /var/log/supervisor/gunicorn_out.log
stdout_logfile_maxbytes = 10MB
stderr_logfile = /var/log/supervisor/gunicorn_error.log
stderr_logfile_maxbytes = 10MB

dockerfile

## Dockerfile that generates an instance of www.longjj.com
FROM ubuntu:16.04

LABEL maintainer="BlackRun"
ENV PYTHONIOENCODING=utf-8


RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
&& sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
&& apt-get clean \
&& apt-get update \
&& apt-get install -y python3-pip python3-dev nginx supervisor\
&& rm -rf /var/lib/apt/lists/*
ADD pip.conf /etc/pip.conf
COPY supervisord.conf /etc/supervisord.conf
COPY supervisor.conf /etc/supervisor/
RUN pip3 install --upgrade pip


COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt \
&& ln -s /app/flask.conf /etc/nginx/conf.d \
&& sed -i 's/nodaemon=false/nodaemon=true/g' /etc/supervisord.conf
EXPOSE 80
CMD ["supervisord", "-c", "/etc/supervisord.conf"]

и запуск док-контейнера

docker container run --name flask_shili -d -p 80:80 flask 

Пожалуйста, помогите мне, спасибо!

1 Ответ

0 голосов
/ 12 декабря 2018

Я попытался воссоздать сценарий, удалив файл конфигурации nginx по умолчанию, который работал для меня.Возможно, потому что значение по умолчанию server_name тоже совпадало и вызывало конфликт.Измените раздел Dockerfile -

........
RUN pip3 install -r requirements.txt \
&& ln -s /app/flask.conf /etc/nginx/conf.d \
&& rm -rf /etc/nginx/sites-enabled/default \
&& sed -i 's/nodaemon=false/nodaemon=true/g' /etc/supervisord.conf
......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...