gpt4 book ai didi

docker - 如何在docker run中发生任何其他事情之前先运行特定文件

转载 作者:行者123 更新时间:2023-12-02 18:19:59 25 4
gpt4 key购买 nike

我有以下docker文件。


MAINTANER Your Name "youremail@domain.tld"

RUN apt-get update -y && \
apt-get install -y python-pip python-dev

# We copy just the requirements.txt first to leverage Docker cache
COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

ENTRYPOINT [ "python" ]

CMD [ "app.py" ]

即使在app.py文件运行之前,我也要运行一个文件。我该如何实现?我不想将代码放在app.py中。

最佳答案

一种解决方案是使用docker-entrypoint.sh脚本。基本上,该入口点将允许您定义一组命令以运行以初始化程序。

例如,我可以创建以下docker-entrypoint.sh:

#!/bin/bash
set -e
if [ "$1" = 'app' ]; then
sh /run-my-other-file.sh
exec python app.py
fi
exec "$@"

我将在Dockerfile中使用它:
FROM alpine
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["app"]

在线上有很多关于docker-entrypoints的文章和示例。您应该对其进行快速搜索,我相信您会找到许多著名的生产级容器使用的有趣示例。

关于docker - 如何在docker run中发生任何其他事情之前先运行特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55763548/

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