Python 启动docker服务时运行多个命令

Python 启动docker服务时运行多个命令,python,docker,gunicorn,Python,Docker,Gunicorn,我尝试在执行docker compose时运行两个不同的命令 我的命令:参数如下所示: gunicorn --reload analytics_api:api --workers=3 --timeout 10000 -b :8083 && exec python /analytics/model_download.py 但当我运行此命令时,容器会失败,并出现以下错误: gunicorn:错误:无法识别的参数:&&exec python /分析/模型下载.py 命令python/

我尝试在执行docker compose时运行两个不同的命令

我的
命令:
参数如下所示:

gunicorn --reload analytics_api:api --workers=3 --timeout 10000 -b :8083 && exec python /analytics/model_download.py
但当我运行此命令时,容器会失败,并出现以下错误:

gunicorn:错误:无法识别的参数:&&exec python /分析/模型下载.py

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

我希望在服务启动时运行它,而不是在构建期间


这里出了什么问题?

一种方法是使用启动shell脚本作为
命令,该命令包含这两个条目

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

一种方法是使用启动shell脚本作为
命令
,该命令包含这两个条目

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\u download.py&&gunicorn--reload analytics\u api:api--workers=3--timeout 10000-b:8083”
在命令解决问题之前添加
bash-c

命令值如下所示:


bash-c“python model_download.py&&gunicorn--reload analytics\u api:api--workers=3--timeout 10000-b:8083”

首先执行
exec python/analytics/model_download.py
命令,然后运行
gunicorn
命令这是否回答了您的问题?您能否将“下载”步骤作为Dockerfile中的
run
步骤运行?这会更干净,避免这个问题。@DavidMaze,这会使图像变得巨大,并且在每次重新培训后,应该进行构建,但事实并非如此advised@julian我想在启动容器时在docker compose文件中运行它,不是在构建期间。首先执行
exec python/analytics/model_download.py
命令,然后运行
gunicorn
命令这是否回答了您的问题?您能否将“下载”步骤作为Dockerfile中的
run
步骤运行?这会更干净,避免这个问题。@DavidMaze,这会使图像变得巨大,并且在每次重新培训后,应该进行构建,但事实并非如此advised@julian我希望在启动容器时在docker compose文件中运行它,而不是在构建期间。当我在sh文件中提供它时,容器将退出,退出代码为0。看起来在运行命令后,容器会自动关闭。不要让脚本文件通过保持休眠的while循环退出。您可以详细说明它吗?当我在sh文件中给出它时,容器退出,退出代码为0。看起来在运行命令之后,容器会自动关闭。不要让脚本文件通过保持休眠的while循环退出。您能详细说明一下吗?