gpt4 book ai didi

python - 有没有办法自动激活 virtualenv 作为 docker 入口点?

转载 作者:IT老高 更新时间:2023-10-28 21:19:39 24 4
gpt4 key购买 nike

我在 docker 容器内有一个 flask 应用程序。我想使用 python 包 zappa 将该应用程序部署到 Amazon Web Services。

不幸的是,zappa 要求它和我所有的应用程序依赖项都安装在 python 虚拟环境中。

所以我重建了我的 docker 镜像,并将所有内容都移到了其中的虚拟环境中。

问题是现在我无法运行如下命令:

docker exec <container> flask <sub command>

因为flask安装在虚拟环境中,没有被激活。

我仍然可以这样做:

host$ docker exec -it <container> bash

container$ source venv/bin/activate
container$ flask <sub command>

另外,我不能再运行我的默认 Dockerfile CMD (gunicorn),因为那也是我的虚拟环境。

这更有意义吗?

最佳答案

您可以创建一个充当 ENTRYPOINT 的脚本,而不是仅将脚本内嵌在命令中。 .一个例子entrypoint.sh看起来像:

#!/bin/bash
source venv/bin/activate
exec "$@"

然后在你的Dockerfile您将复制此文件并将其设置为 ENTRYPOINT :

FROM myimage
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

现在您可以像 docker run mynewimage flask <sub command> 一样运行它或 docker run mynewimage gunicorn .

关于python - 有没有办法自动激活 virtualenv 作为 docker 入口点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44077407/

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