我正在查看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并从那里开始。
我不知道是否可以提出此问题。这里的人对这个问题很模糊。
答案 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中的值的原因。