为什么我的基于python:3.8的应用程序会因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[/strong>,甚至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

相关内容

  • 没有找到相关文章

最新更新