python - 当任何文件发生更改时,在 Docker 容器中重新启动 Python 脚本
问题描述
我有一个简单的脚本
print('hey 01')
我已经将它停靠在下面:
FROM python:3.8
WORKDIR /crawler_app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "-u", "boot_up.py"]
而且我还有一个如下的撰写文件:
version: "3.7"
services:
db:
image: mongo:latest
container_name: ${DB_CONTAINER_NAME}
volumes:
- ./mongo-volume:/data/db
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_USER_PASS}
ports:
- ${EXPOSED_PORT}:27017
networks:
- crawl-network
crawler:
build: crawler
container_name: ${CRAWLER_APP_NAME}
restart: always
volumes:
- ./crawler:/crawler_app
networks:
- crawl-network
depends_on:
- db
networks:
crawl-network:
问题
问题是,虽然我的 Docker 容器中有一个卷,并且当我在编辑器中更改代码并保存它时,容器内的源代码会更新,但是无法重新启动 Python 脚本以开始使用新的更新代码.
我已经搜索了很多关于这个问题的内容,我在 GitHub 和 Stack Overflow 上找到了一些线程,但没有一个对我没有用,我也没有从他们那里得到答案。
我的主要问题是,当我更改源代码并保存它时,如何重新启动容器内的 Python 脚本?
我找到了一种提到每次都重新启动容器的方法,但我认为应该有一种简单的方法,比如 nodemon 到 JavaScript。
解决方案
如果要使用 watchmedo,则需要安装库以通过命令解析 yaml 文件
python -m pip install pyyaml
推荐阅读
- javascript - find the largest area in this 2d array
- php - 在 Windows 上安装 Spatie 的问题
- flutter - 在 Flutter localstorage 中保存对象/列表的最佳方式
- javascript - ReactJS:如何从子组件访问父元素宽度?
- c# - 如何在 .Net Core 2.1 中隐式访问 JWT 令牌?
- postgresql - JPA不删除单行
- r - 由于编码错误,R zip 包未提取文件
- python - 可以排除捕获组中的某些内容吗?
- angular - 使用主机绑定设置自定义 CSS 变量不起作用
- wordpress - 如何为WordPress中除首页之外的所有页面添加标题图像?