2016-08-23 37 views
1

我有一個節點應用程序,使用dotenv來跟蹤env變量。它使用根文件夾中的.env文件來獲取運行時的變量。當我使用泊塢窗,以構建節點的圖像下面的線複製.env文件的生成以及如何正確處理docker中的.env文件

FROM node:latest 

# Create app directory 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

# Install app dependencies 
COPY package.json /usr/src/app/ 
RUN npm install 

# Bundle app source 
COPY . /usr/src/app 

EXPOSE 8000 

如果我建立&從dockerhub拉形象的問題是。該文件已包含我在開發中使用的.env文件。理想情況下,我想指定一個不同的.env文件進行生產。 (也許在生產服務器上手動創建一個新的.env文件)

我試過在dockerignore中指定.env文件。但行COPY . /usr/src/app似乎仍然複製env文件。我不需要使用dotenv。我試着像指定它下面

version: '2' 

services: 
    node: 
    container_name: node 
    build: . 
    env_file: .env 
    volumes: 
     - .:/usr/src/app 
     - /usr/src/app/node_modules 
    command: npm start 

所以我真的不需要在構建指定.ENV文件夾。但是這不起作用。

如何停止COPY命令複製.env文件?

回答

0

爲什麼不能簡單地添加以下?:

RUN rm /usr/src/app/.env 
COPY dockerenv /usr/src/app/.env 

(此外,如果你擔心.ENV數據泄漏出去,要知道,老.ENV文件是在文件系統層可能可見。你可以壓縮文件系統來擺脫這個)。

+0

wouldnt這意味着我仍然有一個dockerenv文件推送到圖像?看起來這實際上是一個錯誤 - https://github.com/docker/compose/issues/1607 – Kannaj