docker 如何提供从绑定目录到程序的文件路径

how to provide file path from binded directory to program in docker

我有一个 python 代码,适用于文件。它读取文件,做一些事情等等。 作为程序的输入,您必须提供文件路径。 这是一个问题。在我 dockerize 我的程序后,它如何从主机系统(容器外)找到文件? 我读过我必须将该主机目录与容器绑定。我想我可以处理 docker 文件的创建。我的问题比较简单。如何将文件从绑定目录传递到 docker 文件。如果我绑定 "C:\user\desktop\test\" 目录,然后,如果我使用 "C:\user\desktop\test\test.file" 参数 运行 docker 文件,这会起作用吗?或者我是否必须(以某种方式)表明所选目录在容器之外?大多数教程都告诉您必须绑定目录,但我找不到有关如何实际使用绑定目录中的文件的信息。

如果要将文件复制到 Docker 图像中,因为它不会在程序使用期间更改,请使用 Dockerfile 中的 COPY 命令:

COPY path/to/file/on/host path/to/file/in/image

但您似乎想在 运行 时动态设置文件路径。在这种情况下,不要复制 Dockerfile 中的文件或路径。相反,使用 docker-compose.yml 到 运行 使用 Dockerfile:

构建的图像
version: '3.7'
services:
  app:
    build:
      context: .
    volumes:
      - type: bind
        source: ./path/to/folder/containing/file
        target: /path/the/file/will/have/in/container