首页 > 解决方案 > 将环境变量复制到 Dockerfile

问题描述

我正在尝试使用以下行在 Dockerfile 中创建一个 .env 文件:

RUN env | grep "REACT_APP" >> .env

我收到此错误:

The command '/bin/sh -c env | grep "REACT_APP" >> .env' returned a non-zero code: 1

有谁知道如何解决这个问题?

编辑:

完整的 Dockerfile:

FROM node:11.2-alpine
EXPOSE 5000

ENV NPM_CONFIG_LOGLEVEL warn

RUN ['/bin/sh', '-c', 'env | grep "REACT_APP" >> .env']

RUN npm install -g serve
CMD serve -s build -n

# Separate layer for dependencies, it will speedup build
COPY package.json package.json
RUN npm install

COPY . .

RUN npm run build --production

#TODO: Maybe there is another way to include it to build?
#Legacy redirects via native serve options (https://github.com/zeit/serve-handler#redirects-array)
RUN cp serve.json build/

标签: reactjsdockerdockerfile

解决方案


显然你根本没有REACT_APP定义。作为命令:

RUN env| grep REACT_APP >> .env

如果您尚未定义它,将失败并出现以下错误。

The command '/bin/sh -c env| grep REACT_APP >> .env' returned a non-zero code: 1

也不需要写成

RUN ['/bin/sh', '-c', 'env | grep "REACT_APP" >> .env']

这种格式RUN env| grep REACT_APP >> .env就够了


推荐阅读