Docker 撰写需要与服务无关的文件



我在一个简单的docker文件中复制了我的问题:

version: "3.3"
services:
node:
entrypoint: "/bin/bash -c"
image: node:14.17.4
working_dir: /app/
env_file:
- .env
node2:
entrypoint: "/bin/bash -c"
image: node
working_dir: /app/
env_file:
- .env
- .env.another

现在,.env.env.another都在同一个目录中,这两个命令执行得很好:

➜ docker-compose run node  "node -v"
Creating docker-huh_node_run ... done
v14.17.4
➜ docker-compose run node2  "node -v"
Creating docker-huh_node2_run ... done
v16.10.0

但是,如果我现在删除。env。另一个(更新:澄清,从磁盘中删除,不改变docker-compose.yaml),这是node不需要的,我得到以下内容:

➜  docker-compose run node  "node -v" 
ERROR: Couldn't find env file: /Users/USER/path/to/here/.env.another

我的期望是,如果没有这个文件,docker中的这个服务会执行得很好吗?我遗漏了什么?

你可能只需要做一个docker-compose down --remove-orphans然后docker-compose run node "node -v"

可能有一些配置是docker-compose实例没有忘记的。Docker-compose不是k8s,所以它不够聪明,无法同步正在运行的实例与Docker-compose文件。

最新更新