Python Docker 容器中的脚本在不通过 Docker CLI 手动调用时运行良好
Python script in Docker container runs fine when called manually not via Docker CLI
抱歉,如果标题不清楚。我有一个自定义图像,它 运行 是一个循环的 Python 脚本。当我在本地直接使用 python3 <script>
调用它时,甚至在从我构建的图像旋转起来的 Docker 容器中调用它时,脚本继续按预期 运行。
但是,当我通过 docker-compose 运行 容器时,脚本什么都不做......当我 运行 它作为 docker service
或独立 docker run
,脚本 运行 正确但只持续了很短的时间然后停止。
Docker文件:
# syntax=docker/dockerfile:1
FROM python:3.8-slim-buster
WORKDIR /mqtt_client
COPY . .
RUN pip3 install -r requirements.txt
CMD ["python3", "/mqtt_client/mqtt_client.py"]
有什么想法吗?
docker-compose 片段:
py_publisher:
image: python-mqtt-client
deploy:
mode: replicated
replicas: 3
depends_on:
- broker
entrypoint: "python3 /path/to/mqtt_client.py"
图片目录结构:
/ <-- root
.
├── Dockerfile
├── mqtt_client.py
└── requirements.txt
从您的 docker-compose 文件中删除入口点,它将由 docker 文件的 CMD 启动。
您也可以将重启选项设置为始终。
抱歉,如果标题不清楚。我有一个自定义图像,它 运行 是一个循环的 Python 脚本。当我在本地直接使用 python3 <script>
调用它时,甚至在从我构建的图像旋转起来的 Docker 容器中调用它时,脚本继续按预期 运行。
但是,当我通过 docker-compose 运行 容器时,脚本什么都不做......当我 运行 它作为 docker service
或独立 docker run
,脚本 运行 正确但只持续了很短的时间然后停止。
Docker文件:
# syntax=docker/dockerfile:1
FROM python:3.8-slim-buster
WORKDIR /mqtt_client
COPY . .
RUN pip3 install -r requirements.txt
CMD ["python3", "/mqtt_client/mqtt_client.py"]
有什么想法吗?
docker-compose 片段:
py_publisher:
image: python-mqtt-client
deploy:
mode: replicated
replicas: 3
depends_on:
- broker
entrypoint: "python3 /path/to/mqtt_client.py"
图片目录结构:
/ <-- root
.
├── Dockerfile
├── mqtt_client.py
└── requirements.txt
从您的 docker-compose 文件中删除入口点,它将由 docker 文件的 CMD 启动。 您也可以将重启选项设置为始终。