如何解决使用uwsgi / nginx的docker在部署的Flask应用中未遇到API
我可以使用下面的这个Dockerfile构建一个Docker映像。
FROM python:3.6
# FROM tiangolo/uwsgi-nginx-flask:python3.6
RUN mkdir /trell-ds-framework
WORKDIR /trell-ds-framework
ADD . /trell-ds-framework/
RUN python setup.py bdist_wheel
USER root
RUN apt-get -y update
RUN apt-get install -y --no-install-recommends libatlas-base-dev gfortran nginx supervisor
RUN pip3 install uwsgi
RUN apt-get install -y libsndfile1-dev
RUN apt-get install -y ca-certificates
RUN apt-get update && apt-get -y install cron
RUN pip install -r requirements.txt
RUN python -c "import nltk;nltk.download('stopwords')"
# Replace with our own nginx.conf
COPY nginx.conf /etc/nginx/conf.d/
EXPOSE 5000
# CMD ["python","/trell-ds-framework/application.py"]
CMD ["uwsgi","ds_backend.ini"]
使用此命令生成图像 docker build -t ds_backend。
以下是我的ds_backend.ini
文件和nginx.file
与Dockerfile
位于同一项目目录中的内容。
ds_backend.ini文件
[uwsgi]
module = wsgi:app
processes = 20
socket = ds_backend.sock
vacuum = true
chmod-socket = 660
die-on-term = true
socket-timeout = 300
http-timeout = 300
ignore-sigpipe=true
ignore-write-errors=true
disable-write-exception=true
nginx.conf文件
server {
listen 80;
location / {
include uwsgi_params;
uwsgi_pass localhost:5000;
}
}
使用以下命令运行图像
docker run -p 5001:5000 ds_backend
并获得以下输出。
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data] Package stopwords is already up-to-date!
WSGI app 0 (mountpoint='') ready in 27 seconds on interpreter 0x55b062460140 pid: 1 (default app)
uWSGI running as root,you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (pid: 1,cores: 1)
spawned uWSGI worker 2 (pid: 195,cores: 1)
spawned uWSGI worker 3 (pid: 196,cores: 1)
spawned uWSGI worker 4 (pid: 197,cores: 1)
spawned uWSGI worker 5 (pid: 198,cores: 1)
spawned uWSGI worker 6 (pid: 199,cores: 1)
spawned uWSGI worker 7 (pid: 200,cores: 1)
spawned uWSGI worker 8 (pid: 201,cores: 1)
spawned uWSGI worker 9 (pid: 202,cores: 1)
spawned uWSGI worker 10 (pid: 203,cores: 1)
spawned uWSGI worker 11 (pid: 204,cores: 1)
spawned uWSGI worker 12 (pid: 205,cores: 1)
spawned uWSGI worker 13 (pid: 206,cores: 1)
spawned uWSGI worker 14 (pid: 207,cores: 1)
spawned uWSGI worker 15 (pid: 208,cores: 1)
spawned uWSGI worker 16 (pid: 209,cores: 1)
spawned uWSGI worker 17 (pid: 210,cores: 1)
spawned uWSGI worker 18 (pid: 211,cores: 1)
spawned uWSGI worker 19 (pid: 212,cores: 1)
spawned uWSGI worker 20 (pid: 213,cores: 1)
但是当我尝试使用ip:port / end_point来实现邮递员的API调用(错误:connect ECONNREFUSED ip:port)时,API没有被实现,并且在上述部署日志中也看不到任何日志。 / p>
有人可以帮我吗?我对使用nginx / uwsgi进行烧瓶应用程序的Docker部署完全陌生。
任何潜在客户均受到高度赞赏。谢谢
PS:我已经在虚拟机中同时启用了5000和5001端口。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。