如何在 docker 文件中包含 Python 个包?
How to include Python packages in docker file?
我想在我的 docker 文件中包含整个目录。这是我当前的 Docker 文件:
FROM python:3
COPY requirements.txt ./
RUN pip install -r requirements.txt
ADD streaming_integration_test.py /
CMD python ./streaming_integration_test.py
但是,在构建这个 docker 文件然后 运行 它之后,我收到以下错误:
File "./streaming_integration_test.py", line 3, in <module>
from data_streamer.file_utilities import FileUtilities
ModuleNotFoundError: No module named 'data_streamer'
其中 file_utilities.py
是包的一部分,在目录 data_streamer
中 我是 Docker 的新手,我不太确定我做错了什么。感谢所有提前回复的人。
FROM python:3 # pull filesystem
COPY requirements.txt ./ # copy single file
RUN pip install -r requirements.txt # run command
ADD streaming_integration_test.py / # add single file
CMD python ./streaming_integration_test.py # run command on "docker run"ň
因此,您还需要添加以下内容:
COPY ./data_streamer /data_streamer # copy folder
将文件夹(及其内容)复制到您的新图像层或在 docker run
命令中将文件夹(在您的主机系统上)作为一个卷安装在您的 docker 容器中(类似于mount
unix 系统上的命令:
# mount host folder `data_streamer` from the current directory (pwd) to `/data_streamer`
docker run --volume $(pwd)/data_streamer:/data_streamer [IMAGE_NAME]
我想在我的 docker 文件中包含整个目录。这是我当前的 Docker 文件:
FROM python:3
COPY requirements.txt ./
RUN pip install -r requirements.txt
ADD streaming_integration_test.py /
CMD python ./streaming_integration_test.py
但是,在构建这个 docker 文件然后 运行 它之后,我收到以下错误:
File "./streaming_integration_test.py", line 3, in <module>
from data_streamer.file_utilities import FileUtilities
ModuleNotFoundError: No module named 'data_streamer'
其中 file_utilities.py
是包的一部分,在目录 data_streamer
中 我是 Docker 的新手,我不太确定我做错了什么。感谢所有提前回复的人。
FROM python:3 # pull filesystem
COPY requirements.txt ./ # copy single file
RUN pip install -r requirements.txt # run command
ADD streaming_integration_test.py / # add single file
CMD python ./streaming_integration_test.py # run command on "docker run"ň
因此,您还需要添加以下内容:
COPY ./data_streamer /data_streamer # copy folder
将文件夹(及其内容)复制到您的新图像层或在 docker run
命令中将文件夹(在您的主机系统上)作为一个卷安装在您的 docker 容器中(类似于mount
unix 系统上的命令:
# mount host folder `data_streamer` from the current directory (pwd) to `/data_streamer`
docker run --volume $(pwd)/data_streamer:/data_streamer [IMAGE_NAME]