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

时间:2018-12-28 11:58:06

标签: python docker flask

我需要帮助使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/目录时,它可以工作,但是当我在容器外使用路径时,则不能工作。

1 个答案:

答案 0 :(得分:1)

您可以创建一个 VOLUME 来实现。

在您的Dockerfile中:

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

在运行容器时,必须使用参数-p <path>:/app/static_files

指定静态文件的路径。