为什么我的基于 python:3.8-alpine 的应用程序会因 importlib_metadata 中的语法错误而崩溃
Why does my python:3.8-alpine based application crash on a syntax error inside importlib_metadata
我在启动本机运行良好的容器化服务器时遇到问题,问题是它在运行时崩溃。这是 docker-compose 命令的输出:
zos_context | File "/code/redis_client.py", line 4, in <module>
zos_context | import redis
zos_context | File "/usr/local/lib/python3.5/dist-packages/redis/__init__.py", line 6, in <module>
zos_context | import importlib_metadata as metadata
zos_context | File "/usr/local/lib/python3.5/dist-packages/importlib_metadata/__init__.py", line 55
zos_context | return f"No package metadata was found for {self.name}"
zos_context | ^
zos_context | SyntaxError: invalid syntax
zos_context exited with code 1
我使用的图像是 python:3.8-alpine。我也试过 python:3.7-alpine 甚至 python:3.5-alpine 但同样的错误总是发生.
这是 Dockerfile 的一部分:
FROM python:3.8-alpine
WORKDIR /code
RUN pip3 install redis
RUN pip3 install redis pika
CMD ["python3", "/code/server.py"]`
问题是我使用的 docker-compose 只是使用过时的映像启动容器,解决方案是将本地机器上的工作目录挂载到容器上以跟上更新。
另一种解决方案是在使用 docker-compose:
启动时使用添加参数 --build
docker-compose up -d --build
我在启动本机运行良好的容器化服务器时遇到问题,问题是它在运行时崩溃。这是 docker-compose 命令的输出:
zos_context | File "/code/redis_client.py", line 4, in <module>
zos_context | import redis
zos_context | File "/usr/local/lib/python3.5/dist-packages/redis/__init__.py", line 6, in <module>
zos_context | import importlib_metadata as metadata
zos_context | File "/usr/local/lib/python3.5/dist-packages/importlib_metadata/__init__.py", line 55
zos_context | return f"No package metadata was found for {self.name}"
zos_context | ^
zos_context | SyntaxError: invalid syntax
zos_context exited with code 1
我使用的图像是 python:3.8-alpine。我也试过 python:3.7-alpine 甚至 python:3.5-alpine 但同样的错误总是发生.
这是 Dockerfile 的一部分:
FROM python:3.8-alpine
WORKDIR /code
RUN pip3 install redis
RUN pip3 install redis pika
CMD ["python3", "/code/server.py"]`
问题是我使用的 docker-compose 只是使用过时的映像启动容器,解决方案是将本地机器上的工作目录挂载到容器上以跟上更新。 另一种解决方案是在使用 docker-compose:
启动时使用添加参数--build
docker-compose up -d --build