我是新手,可能会错过一些显而易见的东西...
我的应用程序分为Web客户端和后端服务器。通过Dockerfile创建一个后端映像非常容易:
COPY
源码RUN
npm install
,npm run build
CMD
npm run start
已构建的后端应用程序将在运行时访问环境变量。
对于Web客户端来说,情况并不简单,因为Webpack需要在构建应用程序之前获取环境变量。就我所知,这只留给我两个选择:
- 要求用户从应用程序源代码构建自己的镜像
- 通过在
CMD
中运行npm run build
,在container run
上构建Web客户端
目前我正在使用#2,但两个选项都似乎不正确。什么是最佳解决方案?
FROM node:latest
COPY ./server /app/server
COPY ./web /app/web
WORKDIR /app/web
CMD ["sh", "-c", "npm install && npm run build && cd ../server && npm install && npm run build && npm run start"]
FROM
和ENV
,并在原始容器中使用ONBUILD
来进行构建。 - ferrix