我如何引用存储在单独容器中的 flask HTML 模板?
How do i reference in flask HTML templates stored in a seperate container?
我正在使用 docker 构建网站。
主站点将构建在 flask / python 中并放入一个容器中。
但是,对于博客,我正在考虑在 WordPress/PHP 中构建它并将其放入另一个容器中。
所以我没有复制两个站点都需要的 CSS/JS files/HTML 模板,是否可以将它们放入自己的容器中,而其他两个容器都引用它们?
如果是这样,我将如何在 Flask 中引用这些文件?例如如何修改下面的 'include' 代码,使其引用存储在不同容器中的 navbar.html?
{% extends 'template.html' %}
{% block nav %}
{% include 'navbar.html' %}
{% endblock %}
要配置多个 Docker 容器来共享公共文件,您应该查看 Docker 卷,尤其是使用 read-only volumes:
Remember that multiple containers can mount the same volume, and it can be mounted read-write for some of them and read-only for others, at the same time.
文档提供了一个示例调用:
$ docker run -d \
--name=nginxtest \
--mount source=nginx-vol,destination=/usr/share/nginx/html,readonly \
nginx:latest
这会将卷 nginx-vol
装载到 /usr/share/nginx/html
并将其标记为 read-only。
回到您的特定用例:您可以创建一个 Docker 卷,将您的模板存储在其中并将其安装到容器 运行 您的 Flask 应用程序位于 /opt/project/app/templates
(假设您的项目存储在 /opt/project
中并将其模板存储在 app/templates
中;您必须根据自己的设置调整路径)。
我正在使用 docker 构建网站。
主站点将构建在 flask / python 中并放入一个容器中。
但是,对于博客,我正在考虑在 WordPress/PHP 中构建它并将其放入另一个容器中。
所以我没有复制两个站点都需要的 CSS/JS files/HTML 模板,是否可以将它们放入自己的容器中,而其他两个容器都引用它们?
如果是这样,我将如何在 Flask 中引用这些文件?例如如何修改下面的 'include' 代码,使其引用存储在不同容器中的 navbar.html?
{% extends 'template.html' %}
{% block nav %}
{% include 'navbar.html' %}
{% endblock %}
要配置多个 Docker 容器来共享公共文件,您应该查看 Docker 卷,尤其是使用 read-only volumes:
Remember that multiple containers can mount the same volume, and it can be mounted read-write for some of them and read-only for others, at the same time.
文档提供了一个示例调用:
$ docker run -d \
--name=nginxtest \
--mount source=nginx-vol,destination=/usr/share/nginx/html,readonly \
nginx:latest
这会将卷 nginx-vol
装载到 /usr/share/nginx/html
并将其标记为 read-only。
回到您的特定用例:您可以创建一个 Docker 卷,将您的模板存储在其中并将其安装到容器 运行 您的 Flask 应用程序位于 /opt/project/app/templates
(假设您的项目存储在 /opt/project
中并将其模板存储在 app/templates
中;您必须根据自己的设置调整路径)。