Mat*_*len 10 pip python-3.x docker docker-compose
我一直试图让django在一个docker容器中通过uwsgi运行.
我有django在docker中运行,内置了web服务器,但是现在我已经修改了requirements.txt以包含uwsgi,我不断收到以下错误消息:
连接被'NewConnectionError(':无法建立新连接:[Errno -2]名称或服务未知'重试后,重试(重试(总数= 4,连接=无,读取=无,重定向=无)) ':/ simple/uwsgi /
所以看起来url docker用于pip包/simple
,但是这是怎么改变的?当我第一次创建容器时,django和psycopg下载得很好.
我尝试指定uwsgi包的完整URL,但这也不起作用.
泊坞窗,compose.yaml:
version: '3'
services:
db:
image: postgres
web:
dns: 8.8.8.8
build: .
command: uwsgi --http :8000 --module destExp.wsgi
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM python:3.5
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
CMD uwsgi --http :8000 --module destExp.wsgi
Run Code Online (Sandbox Code Playgroud)
该错误是由于pip无法到达镜像主机.部分/simple/uwsgi
被用作pip url路径.
如果您正在部署到Swarm,则会忽略Compose中的DNS行,如文档中所述.这是一个解决方法,使pip暂时使用不同的DNS,只需将Dockerfile中的pip行更新为:
RUN echo nameserver 8.8.8.8 > /etc/resolv.conf && pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.作为永久性解决方案,您应该研究如何使您的业务流程使用自定义DNS或对容器中的当前DNS进行故障排除.
归档时间: |
|
查看次数: |
441 次 |
最近记录: |