如果docker-compose.yml和Dockerfile都指定了优先级的env变量?

时间:2018-05-30 10:42:23

标签: docker docker-compose

如果我有Dockerfile

FROM ubuntu:18.04

ENV NAME=Dockerfile-wins

CMD echo $NAME

docker-compose.yml

version: '3'

services:

  myservice:
    build: .
    container_name: myservice
    environment:
      - NAME=docker-compose-wins

当我运行docker-compose up myservice哪一个胜出而为什么

1 个答案:

答案 0 :(得分:3)

docker-compose胜出,因为它覆盖了Dockerfile中的什么。 Dockerfile中指定的内容是默认值。并且可以使用docker-compose所做的docker命令来覆盖。

文档here

中记录了这一点

在封面下,docker-compose正在运行类似

的东西
docker run -e VARIABLE=VALUE