【问题标题】:How to pass argument to docker image having python script如何将参数传递给具有python脚本的docker镜像
【发布时间】:2021-07-30 02:21:23
【问题描述】:

我正在尝试制作一个分类 docker 容器,但在这里我放了一个简短的代码。 问题是 docker 无法将图像文件夹作为输入。 这里是 Dockerfile

FROM pytorch/pytorch:1.6.0-cuda10.1-cudnn7-runtime
RUN apt-get update && apt-get install -y --no-install-recommends \
    # we have found python3.7 in base docker
    python3-pip \
    python3-setuptools \
    build-essential \
    && \
    apt-get clean && \
    python -m pip install --upgrade pip

WORKDIR /workspace
COPY inference.py /workspace
ENTRYPOINT  ["python", "inference.py"]

这是inference.py文件

from glob import glob
import torch
import os

print(os.getcwd())
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-i", '--input_folder',  required=True)    
    args = parser.parse_args()
    
    #load data
    images = sorted(glob("{}/*.nii.gz".format(args.input_folder)))
    data_dicts = [
                {"image": image_name}
                for image_name in images
            ]
    print('number of images',len(data_dicts))
    print(torch.cuda.get_device_name(0))
if __name__ == "__main__":
    main()

使用 build 命令构建 docker 镜像 docker build -t test . 这就是我跑步的方式 docker run --gpus all test -i=images

文件夹images 在当前目录中。我期望打印的图像数量。 当我使用docker run --gpus all test -i images 运行图像时,它会打印以下内容

/workspace
number of images 0
NVIDIA GeForce GTX 1060

【问题讨论】:

    标签: python docker


    【解决方案1】:

    您需要通过将图像文件夹作为卷映射到容器文件系统中来授予容器对图像文件夹的访问权限。您可以使用docker run 命令上的-v 选项来执行此操作。

    如果您的图像位于计算机上的 images 文件夹中,并且容器希望它们位于 /workspace/images 文件夹中,您可以这样映射它

    docker run --gpus all -v $(pwd)/images:/workspace/images test -i images
    

    【讨论】:

    • 仍然打印number of images 0
    • 但如果我在没有 docker 的情况下使用 python3 inference.py -i images,它会显示图像数量
    • 这有助于docker run --gpus all -v $PWD/images:/workspace/images test -i images
    • 是的,对不起。主机路径必须是绝对路径。
    猜你喜欢
    • 2020-01-27
    • 2018-11-19
    • 1970-01-01
    • 2010-10-26
    • 2017-11-14
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多