启动Docker服务时运行多个命令

时间:2019-12-04 10:27:34

标签: python docker gunicorn

在尝试docker-compose时,我试图运行两个不同的命令。

我的command:参数如下:

gunicorn --reload analytics_api:api --workers=3 --timeout 10000 -b :8083 && exec python /analytics/model_download.py

但是当我运行此容器时,该容器失败并显示以下错误:

  

gunicorn:错误:无法识别的参数:&& exec python   /analytics/model_download.py

命令python /analytics/model_download.py的第二部分用于将某些依赖项从共享路径下载到容器内的目录中。

我想在服务启动时运行它,而不是在构建过程中运行。

这是怎么回事?

2 个答案:

答案 0 :(得分:0)

一种方法是将启动外壳程序脚本作为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

答案 1 :(得分:0)

在命令解决之前,先添加bash -c

命令值如下:

bash -c "python model_download.py && gunicorn --reload analytics_api:api -- workers=3 --timeout 10000 -b :8083"