Asp.net core MassTransit忽略环境变量
我试图利用Docker和环境变量,但MassTransit似乎完全忽略了它们 在我的Dockerfile(除其他外)中,我有以下内容:Asp.net core MassTransit忽略环境变量,asp.net-core,masstransit,Asp.net Core,Masstransit,我试图利用Docker和环境变量,但MassTransit似乎完全忽略了它们 在我的Dockerfile(除其他外)中,我有以下内容: ENV MT_RMQ__HOST "rabbitmq" ENV MT_RMQ__USER "root" ENV MT_RMQ__PASS "root" 以下内容可以很好地应用并显示在Docker UI中,但MassTransit仍然使用相同的连接凭据: Connect: guest@localhost
ENV MT_RMQ__HOST "rabbitmq"
ENV MT_RMQ__USER "root"
ENV MT_RMQ__PASS "root"
以下内容可以很好地应用并显示在Docker UI中,但MassTransit仍然使用相同的连接凭据:
Connect: guest@localhost:5672/
warn: MassTransit[0]
Retrying 00:00:08.2900000: Broker unreachable: guest@localhost:5672/
我的配置很简单:
services.AddMassTransit(x =>
{
x.UsingRabbitMq((context, cfg) => cfg.ConfigureEndpoints(context));
});
services.AddMassTransitHostedService();
您在哪里看到MassTransit使用环境变量?如果您使用的是MassTransit平台docker映像,则不使用这些映像调用AddMassTransit,而是使用
IPlatformStartup
界面按照进行配置。@ChrisPatterson我没有使用MassTransit平台docker映像,也没有看到正在使用的环境变量。事实上,我看到他们没有被使用。我有一个带有大众运输nuget包的ASPNET Core应用程序和一个包含RabbitMQ的docker,运行起来没有问题。问题是,rabbitmq托管在单独的容器映像上——这意味着我必须创建网络并使用主机名——但我不能指定它,因为MT忽略了环境变量。因此,我的观点是,MassTransit不在任何配置中使用环境变量。如何配置MassTransit取决于您。@ChrisPatterson我明白了。那么,这有什么用呢我在上面链接了MassTransit平台。使用IPlatformStartup
的MassTransit应用程序的预构建基本Docker映像。