如何将静态映像从主机系统提供给 docker 容器



我需要帮助使 Flask 使用目录中的图像(路径通过使用 argparse 通过程序参数传递)。问题是,我需要在 Docker 上使用它才能使用容器内的主机目录。

检查我的目录结构:

Static/0.png
main.py

烧瓶代码:main.py

import argparse
import flask
parser = argparse.ArgumentParser()
parser.add_argument("--path",default="static")
args = parser.parse_args()
app = Flask(__name__,static_folder=args.path)
app.route("/")
def init():
    path = os.path.join(args.path,"0.png")
    return "<img src="+path+"/>"

Dockerfile:

FROM python:3-onbuild
EXPOSE 5000
ENTRYPOINT ["python","main.py"]

请注意,当我使用容器内的 Static/ 目录时,它可以工作,但是当我使用容器外的路径时,它不起作用。

你可以创建一个来做到这一点。

在您的 Dockerfile 中:

VOLUME /app/static_files
...
ENTRYPOINT ["python","main.py", "/app/static_files"]

在运行容器时,您必须使用参数指定静态文件的路径-p <path>:/app/static_files

最新更新