【发布时间】:2022-01-20 03:43:24
【问题描述】:
这是我的构建命令
docker build --build-arg APP_PROJ=proj1 --build-arg APP_ENV=dev -t proj1 .
给出两个参数,APP_ENV 和 APP_PROJ。这是我的 Dockerfile 内容
FROM node:14.15 AS build
ARG APP_ENV
ARG APP_PROJ
WORKDIR /usr/src/app
COPY package.json package-lock.json ./
RUN npm cache clean --force
RUN npm i
COPY . .
RUN npm run build:${APP_PROJ}:${APP_ENV}
CMD [ "node", "dist/${APP_PROJ}/server/main.js" ]
我想添加一个参数来证明正在构建哪个项目,但是当我运行 docker image 时,它返回了一个错误
Error: Cannot find module '/usr/src/app/dist/${APP_PROJ}/server/main.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
at Function.Module._load (internal/modules/cjs/loader.js:725:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47{
code: 'MODULE_NOT_FOUND',
requireStack: []
}
- 我已经检查了我的 dist 是否存在 main.js
看来 dockerFile 无法读取环境变量 APP_PROJ。如何传递参数让 docker 读取正确的 main.js?
感谢帮助~
【问题讨论】:
标签: angular docker dockerfile