微服务:docker.compose文件中的ESHOP_OCELOT_VOLUME_SPEC行是什么意思

时间:2018-07-13 03:55:51

标签: docker docker-compose microservices

我正在查看docker-compose.override.yml下的eShopOnContainer中的代码。我可以在其中看到一行

  

卷:         -./src/ApiGateways/Web.Bff.Shopping/apigw:$ {ESHOP_OCELOT_VOLUME_SPEC:-/ app / configuration}

webshoppingapigw:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - IdentityUrl=http://identity.api              #Local: You need to open your local dev-machine firewall at range 5100-5110.
    ports:
      - "5202:80"   
    volumes:
      - ./src/ApiGateways/Web.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration}

$ {ESHOP_OCELOT_VOLUME_SPEC ..卷中的行是什么?我认为它会创建一些卷,但是$ {ESHOP_OCELOT_VOLUME_SPEC……即使在.env文件内部,也看不到它在项目中的定义。

当我进入docker-compose.override.prod时,$ {ESHOP_OCELOT_VOLUME行甚至不在那儿。

当前,我在运行示例代码时遇到异常,因此我尝试遵循eShopOnContainer中的代码,但是编写了一个简单版本,因此我可以轻松地遵循。我开始做ApiGateway并从那里开始。

我不知道是否可以提出此问题。这里的人对这个问题很模糊。

2 个答案:

答案 0 :(得分:0)

volumes: - ./src/ApiGateways/Web.Bff.Shopping/apigw:${ESHOP_OCELOT_VOLUME_SPEC:-/app/configuration}

这意味着:

./src/ApiGateways/Web.Bff.Shopping/apigw安装到$ESHOP_OCELOT_VOLUME_SPEC提到的路径上

如果$ESHOP_OCELOT_VOLUME_SPEC(未定义),则用作安装路径/app/configuration

这为用户提供了通过其选择的路径覆盖默认路径的机会。

docker run -e ESHOP_OCELOT_VOLUME_SPEC=/my/path ...

答案 1 :(得分:0)

ESHOP_OCELOT_VOLUME_SPEC,它是一个环境变量。变量值可以在代码的某个地方或实例中导出/设置。 ESHOP_OCELOT_VOLUME_SPEC将替换为值,这就是为什么您无法在docker中看到ESHOP_OCELOT_VOLUME_SPEC而不是ESHOP_OCELOT_VOLUME_SPEC中的值的原因。