nextjs+Dockerfile:环境变量传递给 nextjs.config.js

nextjs+Dockerfile: env variables pass to nextjs.config.js

我有一个next.config.js

module.exports = {
  .........
  env: {
    BASE_URL: 'http://xx.xx.xx.xx:8000',
  },
  ............
};

现在我想在构建 docker 图像时更改 BASE_URL

我的Dockerfile文件

FROM node:16-alpine3.14

WORKDIR /usr/app

COPY ./package.json ./

RUN yarn install

ENV BASE_URL=http://yy.yyy.yy.yy:80

# Copy all files
COPY ./ ./

RUN yarn build

所以在 Dockerfile 中传递 ENV BASE_URL=http://yy.yyy.yy.yy:80 将有助于更改 next.config.js

中的 BASE_URL: 'http://xx.xx.xx.xx:8000'

或者我可以用什么方式改变 BASE_URL

ENV BASE_URL=http://yy.yyy.yy.yy:80 在你的 docker 文件中会设置一个环境变量 BASE_URL 到它的值,你需要为那个变量读取它。

//next.config.js
module.exports = {
  .........
  env: {
    BASE_URL: process.env.BASE_URL || 'http://xx.xx.xx.xx:8000', //read the value from env id empty use default value.
  },
  ............
};