如何正确处理docker中的.env文件

我有一个节点应用程序使用dotenv跟踪envvariables。 它使用根文件夹中的.env文件来获取运行时的variables。 问题是当我使用docker来build立一个节点的图像下面的行复制.env文件的构build以及

 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 

如果我build立从dockerhub拉图像。 该文件已经包含我在开发中使用的.env文件。 理想情况下,我想为生产指定一个不同的.env文件。 (也许在生产服务器上手动创build一个新的.env文件)

我试图在.env中指定.env文件。 但行COPY . /usr/src/app 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 

所以我真的不需要在构build中指定一个.env文件夹。 但是这不起作用。

如何停止COPY命令复制.env文件?

为什么不简单地添加以下内容?

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

(另外,如果你担心.env数据泄漏,请注意旧的.env文件可能在文件系统层可见,你可以挤压文件系统来摆脱这种情况)。