单个 Docker 容器上的多个网站路径

单个 Docker 容器上的多个网站路径

我已经在互联网上搜索过了,但没有找到任何解决方案,或者也许我搜索的不正确,不知道。

我想知道是否可以通过单个 Docker 镜像在单个 Docker 容器中运行多个网站。

我想要获取的是我的项目存储库的网站路径复制。

例如,假设我有以下存储库分支:

/master
/rc
/develop
/feature
    /some-new-change
    /another-change
    /something-waiting-mr
/fix
    /client-urgent-fix
    /some-bug

我想要在浏览器上有以下 URL:

https?://path:port/master
https?://path:port/rc
https?://path:port/develop
https?://path:port/feature/some-new-change
https?://path:port/feature/another-change
https?://path:port/feature/something-waiting-mr
https?://path:port/fix/client-urgent-fix
https?://path:port/some-bug

显然,这些只能从私有网络可见,而公共代理将始终指向 /master 端点挂钩。

该项目是一个 Webpack 编译的 Web 应用程序(ReactJS、SASS 等),目标是将应用程序的每个分支版本部署在其自己的服务文件夹中。

当前状态

在网络环境中,有一台机器运行多个docker容器,每个容器从镜像端口映射到公共服务器端口。

CI+CD 脚本在每个存储库推送时针对选定的分支运行,并将包含 Apache Web Server 的 docker 镜像部署到其容器中。

这样,我在 Apache 服务器的 /var/www 中只有一个唯一的捆绑应用程序,但我试图获得上述解释。

我在网上查到的是在单个容器中发布多个Docker 镜像。

任何想法?

感谢您的时间和回复。

答案1

您不需要使用 Web 内容构建 docker 镜像。您可以拥有一个只包含服务器“机器”的 Web 镜像,该镜像使用绑定安装卷在运行时添加目录(在服务器的适当位置)。因此,您的 CI/CD 只会部署到主机文件系统,并且当前正在运行的容器可以立即将其考虑在内(如果服务器具有内部缓存,则可能必须重新启动容器,但您无需为此重建它)。

相关内容