gpt4 book ai didi

python - 将python脚本与docker数据库容器同步的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 18:42:14 26 4
gpt4 key购买 nike

我正在尝试使用docker-compose在一个容器中运行python脚本,该容器将数据库填充到单独的容器中。我的问题是脚本在数据库准备好接受连接之前启动。有没有办法避免这种情况,仍然使用docker-compose

我的另一种选择是创建一个shell脚本,该脚本依次触发每个docker容器命令,但是如果可能的话,我宁愿使用docker-compose

这是docker-compose.yml文件:

etl:
build: ./etl
links:
- mysql
mysql:
image: mariadb
environment:
MYSQL_DATABASE: my_db
MYSQL_ROOT_PASSWORD: a_password

这是我的解决方法shell脚本:
#!/bin/bash
docker run --name mariadb -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:latest
docker build -t etl ./etl
docker run -it --rm -name my-etl --link mariadb:mysql etl

最佳答案

您可以在启动脚本之前让etl容器休眠,即docker run -it --rm -name my-etl --link mariadb:mysql etl /bin/bash -c "sleep 10 && python your-script"
或在Dockerfile中
CMD ["/bin/bash", "-c", "sleep 10 && python your-script"]
这样,etl容器将在启动python脚本之前休眠10秒钟。

关于python - 将python脚本与docker数据库容器同步的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33739174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com