我如何引用存储在单独容器中的 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 中;您必须根据自己的设置调整路径)。