运行 多个命令同时启动 docker 服务
Run multiple commands while starting docker services
我正在尝试 运行 在执行 docker-compose 时使用两个不同的命令。
我的 command:
参数如下所示:
gunicorn --reload analytics_api:api --workers=3 --timeout 10000 -b :8083 && exec python /analytics/model_download.py
但是当我运行这个容器失败并出现错误:
gunicorn: error: unrecognized arguments: && exec python
/analytics/model_download.py
命令的第二部分python /analytics/model_download.py
,用于将一些依赖项从共享路径下载到容器内的目录。
我想在服务启动时 运行 它,而不是在构建期间。
这里出了什么问题?
一种方法是使用启动 shell 脚本作为 command
,其中包含这两个条目
startup.sh
#start this in background if the other process need not wait for completion
exec python /analytics/model_download.py &
gunicorn --reload analytics_api:api --workers=3 --timeout 10000 -b :8083
while true
do
sleep 5
done
在命令前添加bash -c
解决问题。
命令值如下所示:
bash -c "python model_download.py && gunicorn --reload analytics_api:api -- workers=3 --timeout 10000 -b :8083"
我正在尝试 运行 在执行 docker-compose 时使用两个不同的命令。
我的 command:
参数如下所示:
gunicorn --reload analytics_api:api --workers=3 --timeout 10000 -b :8083 && exec python /analytics/model_download.py
但是当我运行这个容器失败并出现错误:
gunicorn: error: unrecognized arguments: && exec python /analytics/model_download.py
命令的第二部分python /analytics/model_download.py
,用于将一些依赖项从共享路径下载到容器内的目录。
我想在服务启动时 运行 它,而不是在构建期间。
这里出了什么问题?
一种方法是使用启动 shell 脚本作为 command
,其中包含这两个条目
startup.sh
#start this in background if the other process need not wait for completion
exec python /analytics/model_download.py &
gunicorn --reload analytics_api:api --workers=3 --timeout 10000 -b :8083
while true
do
sleep 5
done
在命令前添加bash -c
解决问题。
命令值如下所示:
bash -c "python model_download.py && gunicorn --reload analytics_api:api -- workers=3 --timeout 10000 -b :8083"