上下文:我正在尝试通过 Docker 容器运行一个基于 Plotly-Dash/Flask 的 Web 应用程序,该应用程序连接到在第二个容器内运行的 Redis 服务器。我正在尝试仅通过我的应用程序来实现与此示例接近的东西。
所以我在我的项目文件夹中:
videoblender.py
名为包内的主要应用程序apps
一个名为Dockerfile
一个名为docker-compose
问题:当我通过命令运行我的程序时docker-compose up --build
,构建成功,然后我得到一个错误提示如下[Errno -3] Temporary failure in name resolution
。
我尝试过的:我尝试从上面的链接运行示例,这是我想要实现的简化示例,并且它有效。所以问题似乎出在我具体实现的某个地方。
我的代码在容器外运行良好,本地 redis 服务器运行在localhost:6379
. 当我在本地运行它时,我将host
值分配给 Redis 对象构造函数的参数0.0.0.0
,或者localhost
,哪个都无关紧要。
附加信息和文件:
docker-compose.yml
:
version: '0'
services:
web:
build: .
ports:
- "8003:8003"
redis:
image: "redis:alpine"
Dockerfile我的网络应用程序的文件:
FROM python:3.6-slim
# copy needed things
ADD pocs /code/pocs
ADD apps /code/apps
ADD requirements.txt /code
ADD setup.py /code
WORKDIR /code
# libgl1-mesa-glx is needed for openCV
RUN apt-get update && \
apt install -y libglib2.0-dev libsm6 libxext6 libxrender1 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN pip install -r requirements.txt
RUN pip install .
CMD ["python", "apps/videoblender.py"]
引发异常的代码:
class RedisAccess(object):
def __init__(self, host='redis', port=6379, db=0):
self.redis_server = redis.Redis(host=host, port=port, db=db)
在主python代码中调用videoblender.py
ra = RedisAccess()
暮色呼如
相关分类