运行 多个命令同时启动 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"