[英]Copying environment variables into 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/
显然您根本没有定义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
RUN env| grep REACT_APP >> .env
就足够了
RUN命令按原样启动,而不通过外壳启动。 如果您希望使用诸如shell重定向之类的功能,则必须在shell中运行它:
RUN ["/bin/bash", "-c", "env | grep \"REACT_APP\" >> .env"]
bash
, dash
, sh
选择图像中的外壳。 并非每个图像内部都有BASH。
您可能会收到此错误,因为您可能未设置“ REACT_APP”环境。
您可以按以下方式尝试吗?
ENV REACT_APP test
RUN env | grep "REACT_APP" >> .env
您不能使用bash作为Alphine图像,仅支持sh
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.