使用docker-compose
文件时,我可以在其他容器中通过其名称引用容器。
version: '3'
network:
mynet:
external: false
services:
database:
image: mariadb
network:
- mynet
application:
build: .
network:
- mynet
以上表示我可以像这样引用数据库:database:3306
容器内部的application
。
我是否可以添加可以以相同方式引用的非docker IP地址?假设我的database
服务器不是由docker管理的,但是我想以同样的方式在application
内部引用它?
links
已弃用,但我希望能够执行以下操作:
服务: 应用: 建立:。 链接: -“ 127.0.0.10:数据库”
在没有links
的情况下是否可以实现这种目的?
答案 0 :(得分:2)
我通常通过应用程序要查找的环境变量来执行此操作。例如,应用程序代码可以使用名为foreach (Value v in DocumentData.Values)
{
switch (v.SourceType)
{
case KfxLinkSourceType.KFX_REL_BATCHFIELD:
BatchFields.Add(v.SourceName, v.Value);
break;
case KfxLinkSourceType.KFX_REL_DOCUMENTID:
break;
case KfxLinkSourceType.KFX_REL_INDEXFIELD:
// index fields may also contain table fields
if (v.TableName == "")
{
// this is a regular index field
IndexFields.Add(v.SourceName, v.Value);
}
else
{
// this is a table field!
}
break;
case KfxLinkSourceType.KFX_REL_TEXTCONSTANT:
TextConstants.Add(v.SourceName, v.Value);
break;
case KfxLinkSourceType.KFX_REL_UNDEFINED_LINK:
break;
case KfxLinkSourceType.KFX_REL_VARIABLE:
break;
}
}
的环境变量,然后只需确保在Docker映像运行时将其设置为已设置即可。使用上面的DATABASE_URL
文件作为基础,您可以像这样传递数据库URL:
docker-compose.yml