docker - 将独立客户端构建输出同步到一个Docker Web服务器构建

标签 docker kubernetes webserver docker-build

我有几个客户端应用程序。对于每一个,我都有一个构建管道,该管道可以获取最新代码,对其进行编译,然后将结果绘制到dist文件夹(仅包含html和js文件)中。

使用docker卷,这些dist文件夹已同步到实际托管客户端应用程序的Web服务器(nginx)容器。

结果是我的客户端始终处于“启动”状态,我只需要更新任何客户端的dist文件夹即可部署它,而无需与Web服务器容器打交道。

但是,我想将部署转移到另一种方法,即仅在管道上构建docker镜像(代码更改),并在部署环境时按需使用它们。

问题将是如何构建Web服务器容器,而我不想对任何更改都重新构建所有客户端,也不想将构建的输出存储在源代码管理中。最好的方法是什么?

最佳答案

您可以考虑使用multi-stage build:

  • 第一步是构建Web服务器(它永远不会更改,因此会被缓存)。
  • 第二阶段是dist文件夹的构建,将第一阶段的Web服务器添加到该图像。

  • 最终结果是同时具有Web服务器和静态文件(而不是那些文件在卷中)的图像,并且仅重建了静态文件。

    关于docker - 将独立客户端构建输出同步到一个Docker Web服务器构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53925101/

    相关文章:

    python - 无法使用docker run命令运行docker镜像

    authentication - Kubernetes:是否可以关闭 GKE 主节点的基本身份验证?

    docker - 在 kubernetes helm 如何用新的配置值替换 pod

    .htaccess - 没有 Nginx 或 Apache 的 Golang htaccess 配置

    tomcat - 从 IntelliJ 启动 tomcat/JBoss 时出现问题

    windows - Window Server 2016 上的 Portainer 安装程序

    php - 使用 nginx-proxy 找不到 nginx 返回文件并且不加载静态文件

    proxy - 无法在代理后面下载 Docker 镜像

    spring - 部署到 Istio(使用 Kubernetes)的 Jhipster 无法正确加载

    ruby-on-rails - 托管多个低点击率 Rails/sinatra 应用程序的最佳 Web/应用程序服务器