容器化akka.net应用程序后Akka消息传递不起作用

问题描述 投票:0回答:1

我在Linux容器中强化了灯塔和akka.net应用程序(batchProcessor)。在其下方显示两个容器都在上。enter image description here

我还可以从本地计算机上的Pbm客户端连接到灯塔。enter image description here

但是批处理程序无法连接到灯塔(种子节点)。因此,在这些多个群集之间传递的消息不起作用。这是Lighthouse的dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app

ENV ACTORSYSTEM="BatchProcessingSystem"
ENV CLUSTER_SEEDS "[]"
ENV CLUSTER_IP "127.0.0.1"
ENV CLUSTER_PORT "4051"

COPY ./bin/Release/netcoreapp2.2/win10-x64/publish/ /app

EXPOSE 9110 4051
RUN dotnet tool install --global pbm 

ENV PATH="${PATH}:/root/.dotnet/tools"
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
COPY --from=build-env /app .

ENV CPE_ENVIRONMENT "local"
ENV TNS_ADMIN "C:\oracle"

ENTRYPOINT ["dotnet", "Lighthouse.dll"]

这是批处理程序(akka.net应用程序)的dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app
ENV CLUSTER_SEEDS "akka.tcp://[email protected]:4051"
ENV CLUSTER_IP "127.0.0.1"
ENV CLUSTER_PORT "9121"

COPY ./bin/Release/netcoreapp2.2/win10-x64/publish/ /app

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /app
COPY --from=build-env /app .

ENV CPE_ENVIRONMENT "local"
ENV TNS_ADMIN "C:\oracle"

EXPOSE 9121

ENTRYPOINT ["dotnet", "BatchProcessor.dll"]

有人可以帮我吗?我在这里想念什么?

.net docker dockerfile containers akka.net
1个回答
0
投票

此处ENV CLUSTER_SEEDS "akka.tcp://[email protected]:4051" 127.0.0.1在容器内查找。因此,您的batchprocessor会将127.0.0.1视为self,而不是主机。

您应该:

  1. 创建docker swarm文件,在其中声明两个容器,声明网桥网络
  2. 然后您可以在{target container name}:{target container exposed port}之类的URL中使用容器的名称>
© www.soinside.com 2019 - 2024. All rights reserved.