【问题标题】:Prevent the .env file being copied to a Docker container防止 .env 文件被复制到 Docker 容器
【发布时间】:2020-07-11 17:49:29
【问题描述】:

我是 Docker 的新手,我正在尝试使用 express 和 mongodb 制作“Starter-Boilerplate”, 但我不希望 .env 文件在我的 docker 映像/容器中,我已经尝试使用 .dockerignore 文件,但 .env 文件仍被复制到所有 docker-compose 构建中的容器内。

我的 .dockerignore 文件:

node_modules
.env

repo 的链接以重现该案例: https://github.com/josuerodcat90/expressjs-server-starter/tree/docker

有什么想法或建议吗?在此先感谢队友。

【问题讨论】:

  • 它是在镜像中,还是在使用卷挂载运行时在容器中看到它?
  • 我猜 在图像中,因为我看到在已安装的容器上使用 bash ls -a
  • 您安装了一个卷,这将使它看起来像是添加了文件

标签: docker express docker-compose environment-variables dockerfile


【解决方案1】:

当您需要保留 docker 卷而不会遇到 .env 文件和 docker-compose 规则时,我为这些情况找到了解决方案,请参见下文:

首先我在我的 .env 文件中声明了 2 个新变量:

ENV=DOCKER //this can switch between DOCKER and LOCAL
DOCKER_PORT=3000 //for example

然后我在我的 index.js 和 database.js 文件中做了一些改动,当我在 Docker 工作时,环境变量必须与我的 Local 变量不同,然后问题就解决了。

感谢大家对我的问题的帮助和关心,对不起我的英语不好哈哈。

【讨论】:

    【解决方案2】:

    如果您还没有.dockerignore 文件,请创建一个文件并在其中添加**/*.env。这将防止从任何文件夹复制任何.env 文件。

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 2016-03-29
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2017-07-18
      • 2015-07-08
      相关资源
      最近更新 更多