【问题标题】:How does one build an spa with webpack when deploying Docker container to Heroku将 Docker 容器部署到 Heroku 时如何使用 webpack 构建 spa
【发布时间】:2018-08-12 11:29:27
【问题描述】:
我正在开发一个 Aurelia 单页应用程序,它将与使用 Django Rest Framework 构建的 REST api 对话。
如果没有容器,我将有两个构建包,一个用于在 package.json 文件中运行脚本的 Node,另一个用于构建 Django 应用程序的 Python。
如果我推送一个容器镜像,那么什么机制替代了节点 buildpack 调用 package.json 中的脚本来触发 webpack 创建资产包?
【问题讨论】:
标签:
django
docker
heroku
aurelia
【解决方案1】:
什么机制替代了调用package.json中脚本的node buildpack
你并没有真正提供任何关于你当前设置和你已经尝试过的信息,所以我假设你已经知道如何在 heroku 上运行 docker,并且你已经让你当前的设置在 heroku 上工作而无需码头工人。
如果您的 package.json 中有一个名为 build 的脚本启动 webpack 构建,并且 start 启动了一个 node.js express 应用程序以从 webpack 输出文件夹为您的应用程序提供服务,那么您d 在你的 Dockerfile 中做这样的事情:
FROM node:8.9.4
RUN npm install
RUN npm run build
CMD npm run start
当然,这不考虑您可能需要进行的任何复制和权限设置,但这取决于您的项目设置。
重要的一点是,您实际上是将事物作为节点应用程序运行,并且您需要 package.json 中的适当脚本,您可以将构建和运行委托给这些脚本,因此您只需要调用一两个来自您的 Dockerfile 的那些脚本。你不想直接在那里做太多的 npm 东西。