簡體   English   中英

將環境變量復制到Dockerfile中

[英]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"]

bashdashsh選擇圖像中的外殼。 並非每個圖像內部都有BASH。

您可能會收到此錯誤,因為您可能未設置“ REACT_APP”環境。

您可以按以下方式嘗試嗎?

ENV REACT_APP test
RUN env | grep "REACT_APP" >> .env

您不能使用bash作為Alphine圖像,僅支持sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM