微服务:docker.compose 文件中的 ESHOP_OCELOT_VOLUME_SPEC 行是啥意思
Posted
技术标签:
【中文标题】微服务:docker.compose 文件中的 ESHOP_OCELOT_VOLUME_SPEC 行是啥意思【英文标题】:Microservices: What is the ESHOP_OCELOT_VOLUME_SPEC line mean in docker.compose file微服务:docker.compose 文件中的 ESHOP_OCELOT_VOLUME_SPEC 行是什么意思 【发布时间】:2018-12-21 09:07:50 【问题描述】:我正在查看 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 并从那里开始构建。
我不知道这个问题是否可以被问到。这里的人对这个问题很模糊。
【问题讨论】:
P.S.我不是架构师,甚至不是高级开发人员,我只是初级水平。我无法运行 eShopOnContainer,甚至在浏览器上发布了异常,但没有得到任何响应,导致先前的问题被否决,因为要求有一个更简单的教程版本可供试用。该问题已被删除。 【参考方案1】: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 ...
【讨论】:
哦,有道理,谢谢...我之前用过docker命令没意识到【参考方案2】:ESHOP_OCELOT_VOLUME_SPEC 这是一个环境变量。变量值可以在代码的某个位置或实例中导出/设置。 ESHOP_OCELOT_VOLUME_SPEC 将被替换为值,这就是为什么您无法在 docker 中看到 ESHOP_OCELOT_VOLUME_SPEC 而不是 ESHOP_OCELOT_VOLUME_SPEC 中的值。
【讨论】:
以上是关于微服务:docker.compose 文件中的 ESHOP_OCELOT_VOLUME_SPEC 行是啥意思的主要内容,如果未能解决你的问题,请参考以下文章
使用 Eureka 和 traefik 和 docker compose 的微服务服务发现
关于docker那点事儿——docker compose简介