我有一个React应用程序,它使用webpack.js.js中指定的env变量。问题是env变量在构建时是硬编码的。如何使应用程序使用Docker容器中的env变量?我不想每次在生产环境中更改env变量时都要重新构建UI映像。
webpack.config.js
module.exports = {
...
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV || 'production'),
},
}),
],
}
字符串
Dockerfile
# Builder
FROM node:16 as builder
WORKDIR /usr/src/app
COPY package*.json ./
RUN yarn
COPY src ./src
COPY .babelrc .
COPY webpack* .
COPY config.docker.js ./config.js
COPY tsconfig.json .
RUN yarn build
# Runtime
FROM nginx:1.24-alpine3.17-slim
COPY support/ /
COPY --from=builder /usr/src/app/build /usr/share/nginx/html
型
1条答案
按热度按时间dced5bon1#
你可以试试runtime-env。
以下是您需要执行的几个步骤:
1.更改阅读环境变量的语法:
字符串
1.使用runtime-env生成
runtime-env.js
:型
1.尽早导入生成的文件:
型
希望这对你有帮助:)