Tag: 工gunicorn

使用nginx作为反向代理时连接被拒绝,而连接上游

设置如下:我有一个运行在0.0.0.0:8000 ,可通过浏览器访问的Gunicorn / Django应用程序。 为了提供静态文件,我使用nginx作为反向代理。 /etc/nginx/nginx.conf被configuration为转发请求,如下所示: server { location /static/ { alias /data/www/; } # Proxying the connections location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_pass http://0.0.0.0:8000; } } 和我docker-compose.yml文件如下: version: '3.3' services: web: restart: always build: ./web expose: – "8000" ports: – "8000:8000" volumes: – staticdata:/usr/src/app/static_files command: gunicorn wsgi:application –workers […]

为什么Docker容器的图片变得如此庞大,同时在UBUNTU 16.04上倚靠python3.6,Virtualenv,Flask,Gunicorn

在virtualenv python3 -m venv FLSK-ENV中部署烧瓶应用程序 Dockerfile: FROM appcontainers/ubuntu:xenial MAINTAINER user <user> RUN apt-get install -y software-properties-common \ && add-apt-repository ppa:jonathonf/python-3.6 -y \ && apt-get update -y \ && apt-get install -y python3.6-minimal python3.6-venv \ && apt-get install -y git \ && apt-get install python-pip -y \ && pip install –upgrade pip \ && pip install […]

Docker nginx无法连接到在单独容器中运行的上游gunicorn

我已经尝试了各种选项,例如docker docker-compose expose , bridge , networks选项,但不能让它与上游gunicorn在单独的容器中运行的nginx连接一起工作,我收到来自nginx的502 Bad Gateway错误。 我不确定我缺less什么。 以下是我的docker-compose文件: version: "3" services: web: build: . container_name: web command: bash -c "/start_web.sh" restart: always depends_on: – worker ports: – "80:80" – "443:443" worker: build: . container_name: worker command: bash -c "/start_worker.sh" restart: always ports: – "8000:8000" nginx conf: upstream worker { server 127.0.0.1:8000; } […]

nginx错误403 – 目录索引被禁止

我正在尝试将docker nginx与docker flask连接起来。 这是我的项目的结构: . ├── storage │ ├── nginx │ │ └── static │ │ └── image.gif └── web └── flask ├── app │ ├── run.py │ └── templates │ └── index.html ├── conf │ ├── nginx-default.conf │ ├── nginx-flask.conf │ └── requirements.txt └── Dockerfile 虽然curl 127.0.0.1:50和curl 127.0.0.1:80/static/image.gif工作正常,当我curl 127.0.0.1时,我得到一个'403禁止'错误。 更具体地说, nginx给出了以下错误: 2016/03/05 17:54:37 [error] […]

在Ubuntu 16.04中设置PYTHONPATH,让Docker映像正常运行

我有一个运行gunicorn进程的docker镜像,但每次运行时,都会出现ImportError: No module named 'crm' named'crm ImportError: No module named 'crm' 。 所以我正在关注这个SOpost来解决这个问题。 但是,当我跑步 ENTRYPOINT ["PYTHONPATH=`pwd`/..", "/usr/local/bin/gunicorn", "web_interface:app", "-w 4", "-t 90", "–log-level=debug", "-b 0.0.0.0:8000", "–reload"] 该容器吐了一口 ERROR: for web Cannot start service web: oci runtime error: container_linux.go:247: starting container process caused "exec: \"PYTHONPATH=`pwd`/.. \": stat PYTHONPATH=`pwd`/.. : no such file or directory" 任何想法如何运行PYTHONPATH命令? 我应该说,它在我的Mac本地工作,但不是在Ubuntu容器。 […]

Supervisord运行瓶应用程序调用docker应用程序

我有一个应用程序,使用subprocess进程调用我的dockerized应用程序。 @app.route('/detect', methods=['POST']) def detect_file(): file = request.files['wireframe'] if file and allowed_file(file.filename): filename = str(uuid.uuid4()) + getFileExtension(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) p = subprocess.Popen(["docker","run","-v","/home/ganaraj/contours/upload:/detect","-w", "/detect","-it","–rm","opecv3", "./prediction", filename ], stdout=subprocess.PIPE) output, err = p.communicate() return jsonify(result=output.rstrip()) return jsonify(error='Mismatch file type') 当我运行它自己的python app.py烧瓶应用程序,它工作得很好。 我从dockerized应用程序得到一个结果。 当我运行使用gunicorn gunicorn wsgi.py的烧瓶应用程序,它也能正常工作。 当我通过gunicorn运行烧瓶应用程序,并使用主pipe保持发展 – 应用程序启动 – API的工作通常除了DOCKERIZED部分。 我猜这与某种types的权限有关,但我无法弄清楚我需要做什么来解决这个问题。 这里是我的supervisord.conf供参考。 [program:cvupload] command = /root/anaconda/envs/cvuload/bin/gunicorn -b […]

GDB使用gunicorn核心转储空回溯

我试图在一个docker容器中做一个gunicorn的核心转储,并在另一个容器中进行debugging。 Gunicorn运行python3.5。 当我在转储的容器中打开核心文件时,一切都很正常: Reading symbols from /opt/pyenv/versions/3.5.0/bin/python3.5…done. [New LWP 786] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/opt/pyenv/versions/3.5.0/bin/python3.5'. #0 0x00007f7caec93af3 in __epoll_wait_nocancel () at ../sysdeps/unix/syscall-template.S:81 81 ../sysdeps/unix/syscall-template.S: No such file or directory. (gdb) bt #0 0x00007f7caec93af3 in __epoll_wait_nocancel () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f7cacdaf213 in pyepoll_poll (self=0x7f7ca5aa9a80, args=<optimized out>, […]

芹菜如何发现新的节点?

我在Docker运行Celery和RabbitMQ Gunicorn。 我的问题是:我明白,芹菜是专为分布式处理。 我没有看到任何文档,假设我在同一局域网上有几台机器/节点,他们是如何发现彼此的? RabbitMQ扮演一个angular色吗? 芹菜实例是否发现彼此? 有没有合适的主机列表? 如果是这样,我该如何编辑它? 另外,假设我将只使用一个节点来处理HTTP请求,那么是否仍然需要在所有节点上运行gunicorn? 我这样问,是因为在起死回生的起动命令中,有一个工人数量的设置。 而且,该设置仅适用于该节点,还是作为所有连接节点的最大总数? 编辑:第一个答案后,我开始在这个工作。 似乎我需要某种networking设置,无论是群集还是桥接等。我应该澄清,我使用docker-compose来提出解决scheme,并且我看到正常的swarm设置不起作用,而且我如果我去那条路线,使用稍微不同的东西。 要明确一点:我需要一种方法,可以在不同的主机上添加芹菜工人,让他们能够与“主”主机进行通信,从而增加系统的能力。 如果有人可以提供一个清晰的过程来实现这个或这样的链接,这将是最有帮助的。 我希望我已经明确expression了,请让我知道如果您需要任何进一步的信息。 谢谢!

Docker重新加载并不反映CSS文件中的更改

我已经configurationdocker重新加载自动时,我对我的项目文件进行更改。 当我在HTML或.py文件中进行更改时,它工作正常,但不反映对CSS文件的任何更改。 这个问题在这里也被问到,但是还没有答案。 请帮忙! 我用gunicorn使用Flask python。 正是遵循这个课程的udemy。

无法访问在Docker容器内运行的Flask Web应用程序

我有以下Dockerfile ,我build立一个包含ElasticSearch , Kibana4和gunicorn # gunicorn-flask FROM devdb/kibana MAINTAINER KS <ks@gmail.com> ENV DEBIAN_FRONTEND noninteractive RUN apt-get update RUN apt-get install -y python python-pip python-virtualenv gunicorn RUN pip install -U pip # Setup flask application RUN mkdir -p /deploy/app COPY gunicorn_config.py /deploy/gunicorn_config.py COPY app /deploy/app COPY run_gunicorn /etc/service/gunicorn RUN pip install -r /deploy/app/requirements.txt WORKDIR /deploy/app EXPOSE […]