gpt4 book ai didi

python - 如何运行与Dockerfile分开存放在单独文件夹中的python文件?

转载 作者:行者123 更新时间:2023-12-02 18:47:45 27 4
gpt4 key购买 nike

我有一个看起来像这样的dockerfile:

FROM python:3.7-slim-stretch

ENV PIP pip

RUN \
$PIP install --upgrade pip && \
$PIP install scikit-learn && \
$PIP install scikit-image && \
$PIP install rasterio && \
$PIP install geopandas && \
$PIP install matplotlib

COPY sentools sentools
COPY data data
COPY vegetation.py .


现在在我的项目中,我有两个python文件植被和森林。我把它们每个都放在单独的文件夹中。如何为两个python文件创建单独的docker镜像并分别为它们执行容器?

最佳答案

如果基本代码相同,并且仅容器应使用不同的Python脚本运行,那么我建议使用单个Docker,而您不必担心管理两个Docker镜像。

vegetation.py设置为默认值,当容器未通过ENV的情况下启动时,它将运行vegetation.py;如果在运行时重写了ENV FILE_TO_RUN,则将运行指定的文件。

FROM python:3.7-alpine3.9 
ENV FILE_TO_RUN="/vegetation.py"
COPY vegetation.py /vegetation.py
CMD ["sh", "-c", "python $FILE_TO_RUN"]

现在,如果要运行 forest.py,则只需将路径文件传递给ENV。
docker run -it -e FILE_TO_RUN="/forest.py" --rm my_image

要么
docker run -it -e FILE_TO_RUN="/anyfile_to_run.py" --rm my_image

已更新:

您可以在docker镜像中使用args + env进行管理。
FROM python:3.7-alpine3.9 
ARG APP="default_script.py"
ENV APP=$APP
COPY $APP /$APP
CMD ["sh", "-c", "python /$APP"]

现在使用ARG进行构建
docker build --build-arg APP="vegetation.py" -t app_vegetation .

要么
docker build --build-arg APP="forest.py" -t app_forest .

现在好运行
docker run --rm -it app_forest

复制两个
FROM python:3.7-alpine3.9 
# assign some default script name to args
ARG APP="default_script.py"
ENV APP=$APP
COPY vegetation.py /vegetation.py
COPY forest.py /forest.py
CMD ["sh", "-c", "python /$APP"]

关于python - 如何运行与Dockerfile分开存放在单独文件夹中的python文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57901995/

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