【发布时间】:2022-02-17 10:45:07
【问题描述】:
我们的 Node.js 项目需要 Node 14 或更高版本,所以我在 package.json 中设置了它
"engines": {
"node": ">=14"
}
但是 Dockerfile(其他一些开发人员编写的)不尊重这一点,看起来像这些
FROM node:12-alpine3.14
COPY package*.json ./
ENV NODE_ENV production
# RUN npm install -g npm@latest
RUN npm install
...
docker build 成功,但 docker run 由于节点 12 而失败。
如何让docker build 尊重我在 package.json 中设置的 nodejs 版本?
请注意,只需更新FROM node:14-alpine3.14,即可轻松解决此问题。但这不是我的问题。例如,假设将来项目需要 node16,我们在package.json 中更新它但忘记更新 Dockerfile,我需要一种方法使 docker build 失败。
【问题讨论】:
标签: node.js docker npm dockerfile package.json