Ignite .NET in docker (linux)?

classic Classic list List threaded Threaded
12 messages Options
F.D. F.D.
Reply | Threaded
Open this post in threaded view
|

Ignite .NET in docker (linux)?

Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
ptupitsyn ptupitsyn
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
F.D. F.D.
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
ptupitsyn ptupitsyn
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

Here is a gist to run Ignite.NET in Docker on Linux & .NET Core:

Confirmed to work with Ignite.NET Client on Windows.

Let me know if you need more info.
Looks like you use some event API with remote filters, make sure that remote filter class is available on server node and registered in BinaryConfiguration.
Same is true for any other code that is executed remotely.

Thanks,
Pavel

On Fri, Dec 21, 2018 at 2:14 PM F.D. <[hidden email]> wrote:
Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

In reply to this post by F.D.
Hello!

If you plan on using Ignite features which use remote code execution, you need to make sure that:
- You start your server nodes as .Net nodes (apacheignite/ignite is almost certainly a Java node container)
- You need to either deploy your code on server nodes, or enable PeerAssemblyLoading.

Regards,
--
Ilya Kasnacheev




пт, 21 дек. 2018 г. в 14:14, F.D. <[hidden email]>:
Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
F.D. F.D.
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

In reply to this post by ptupitsyn
Ok, so your idea is to build an image starting from Microsoft .NET image. Then you add the java jdk, and make a c# project that launch the ignite node, is it right?

Can you clarify to me these lines:

...
RUN dotnet restore
...
ENTRYPOINT ["dotnet", "run"]

thanks,
   F.D.



On Fri, Dec 21, 2018 at 6:09 PM Pavel Tupitsyn <[hidden email]> wrote:
Here is a gist to run Ignite.NET in Docker on Linux & .NET Core:

Confirmed to work with Ignite.NET Client on Windows.

Let me know if you need more info.
Looks like you use some event API with remote filters, make sure that remote filter class is available on server node and registered in BinaryConfiguration.
Same is true for any other code that is executed remotely.

Thanks,
Pavel

On Fri, Dec 21, 2018 at 2:14 PM F.D. <[hidden email]> wrote:
Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
F.D. F.D.
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

I've done some further steps.

now the docker file is:
FROM microsoft/dotnet:2.1-sdk

ENV http_proxy='http://10.0.75.1:3128'
ENV https_proxy='https://10.0.75.1:3128'

WORKDIR /app

RUN apt update && apt install default-jdk -y --no-install-recommends

COPY *.csproj ./
COPY nuget.config ./

RUN dotnet restore --configfile nuget.config

COPY . ./
ENTRYPOINT ["dotnet", "run"]


I've added some env variables to permits to the apt to install the jdk. But now I've a problem with nuget.
I added a configuration file:
<configuration>
<config>
<add key="http_proxy" value="http://10.0.75.1:3128" />
</config>
</configuration>

But I got this error message:

 ---> Running in 1f6391892153
  Restoring packages for /app/ignite-docker-test.csproj...
/app/ignite-docker-test.csproj : error NU1100: Unable to resolve 'Apache.Ignite (>= 2.7.0)' for '.NETCoreApp,Version=v2.1'.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.props.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.targets.
  Restore failed in 192.91 ms for /app/ignite-docker-test.csproj.
The command '/bin/sh -c dotnet restore --configfile nuget.config' returned a non-zero code: 1

If I remove
--configfile nuget.config

I got this error:

 ---> Running in 525375280b79
  Restoring packages for /app/ignite-docker-test.csproj...
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/app/ignite-docker-test.csproj]
The command '/bin/sh -c dotnet restore' returned a non-zero code: 1

In any case I cannot build the image. Can you help me?

Thanks,
   F.D.

On Thu, Jan 3, 2019 at 10:19 AM F.D. <[hidden email]> wrote:
Ok, so your idea is to build an image starting from Microsoft .NET image. Then you add the java jdk, and make a c# project that launch the ignite node, is it right?

Can you clarify to me these lines:

...
RUN dotnet restore
...
ENTRYPOINT ["dotnet", "run"]

thanks,
   F.D.



On Fri, Dec 21, 2018 at 6:09 PM Pavel Tupitsyn <[hidden email]> wrote:
Here is a gist to run Ignite.NET in Docker on Linux & .NET Core:

Confirmed to work with Ignite.NET Client on Windows.

Let me know if you need more info.
Looks like you use some event API with remote filters, make sure that remote filter class is available on server node and registered in BinaryConfiguration.
Same is true for any other code that is executed remotely.

Thanks,
Pavel

On Fri, Dec 21, 2018 at 2:14 PM F.D. <[hidden email]> wrote:
Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
ptupitsyn ptupitsyn
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

Looks like you have some network issues and NuGet repository can not be accessed.
Can you describe your environment? Why is the proxy needed?

Also I've built and pushed Ignite.NET docker image to my personal hub, maybe this helps? 
    docker run ptupitsyn/ignite:ignite-net


Thanks,
Pavel

On Thu, Jan 3, 2019 at 5:20 PM F.D. <[hidden email]> wrote:
I've done some further steps.

now the docker file is:
FROM microsoft/dotnet:2.1-sdk

ENV http_proxy='http://10.0.75.1:3128'
ENV https_proxy='https://10.0.75.1:3128'

WORKDIR /app

RUN apt update && apt install default-jdk -y --no-install-recommends

COPY *.csproj ./
COPY nuget.config ./

RUN dotnet restore --configfile nuget.config

COPY . ./
ENTRYPOINT ["dotnet", "run"]


I've added some env variables to permits to the apt to install the jdk. But now I've a problem with nuget.
I added a configuration file:
<configuration>
<config>
<add key="http_proxy" value="http://10.0.75.1:3128" />
</config>
</configuration>

But I got this error message:

 ---> Running in 1f6391892153
  Restoring packages for /app/ignite-docker-test.csproj...
/app/ignite-docker-test.csproj : error NU1100: Unable to resolve 'Apache.Ignite (>= 2.7.0)' for '.NETCoreApp,Version=v2.1'.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.props.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.targets.
  Restore failed in 192.91 ms for /app/ignite-docker-test.csproj.
The command '/bin/sh -c dotnet restore --configfile nuget.config' returned a non-zero code: 1

If I remove
--configfile nuget.config

I got this error:

 ---> Running in 525375280b79
  Restoring packages for /app/ignite-docker-test.csproj...
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/app/ignite-docker-test.csproj]
The command '/bin/sh -c dotnet restore' returned a non-zero code: 1

In any case I cannot build the image. Can you help me?

Thanks,
   F.D.

On Thu, Jan 3, 2019 at 10:19 AM F.D. <[hidden email]> wrote:
Ok, so your idea is to build an image starting from Microsoft .NET image. Then you add the java jdk, and make a c# project that launch the ignite node, is it right?

Can you clarify to me these lines:

...
RUN dotnet restore
...
ENTRYPOINT ["dotnet", "run"]

thanks,
   F.D.



On Fri, Dec 21, 2018 at 6:09 PM Pavel Tupitsyn <[hidden email]> wrote:
Here is a gist to run Ignite.NET in Docker on Linux & .NET Core:

Confirmed to work with Ignite.NET Client on Windows.

Let me know if you need more info.
Looks like you use some event API with remote filters, make sure that remote filter class is available on server node and registered in BinaryConfiguration.
Same is true for any other code that is executed remotely.

Thanks,
Pavel

On Fri, Dec 21, 2018 at 2:14 PM F.D. <[hidden email]> wrote:
Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
F.D. F.D.
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

Yes I agree with you. The proxy is needed because in my office is present a firewall. But from my host can use nuget without problems, I got errors only in docker.

Thanks,
  F.D.


On Fri, Jan 4, 2019 at 4:30 PM Pavel Tupitsyn <[hidden email]> wrote:
Looks like you have some network issues and NuGet repository can not be accessed.
Can you describe your environment? Why is the proxy needed?

Also I've built and pushed Ignite.NET docker image to my personal hub, maybe this helps? 
    docker run ptupitsyn/ignite:ignite-net


Thanks,
Pavel

On Thu, Jan 3, 2019 at 5:20 PM F.D. <[hidden email]> wrote:
I've done some further steps.

now the docker file is:
FROM microsoft/dotnet:2.1-sdk

ENV http_proxy='http://10.0.75.1:3128'
ENV https_proxy='https://10.0.75.1:3128'

WORKDIR /app

RUN apt update && apt install default-jdk -y --no-install-recommends

COPY *.csproj ./
COPY nuget.config ./

RUN dotnet restore --configfile nuget.config

COPY . ./
ENTRYPOINT ["dotnet", "run"]


I've added some env variables to permits to the apt to install the jdk. But now I've a problem with nuget.
I added a configuration file:
<configuration>
<config>
<add key="http_proxy" value="http://10.0.75.1:3128" />
</config>
</configuration>

But I got this error message:

 ---> Running in 1f6391892153
  Restoring packages for /app/ignite-docker-test.csproj...
/app/ignite-docker-test.csproj : error NU1100: Unable to resolve 'Apache.Ignite (>= 2.7.0)' for '.NETCoreApp,Version=v2.1'.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.props.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.targets.
  Restore failed in 192.91 ms for /app/ignite-docker-test.csproj.
The command '/bin/sh -c dotnet restore --configfile nuget.config' returned a non-zero code: 1

If I remove
--configfile nuget.config

I got this error:

 ---> Running in 525375280b79
  Restoring packages for /app/ignite-docker-test.csproj...
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/app/ignite-docker-test.csproj]
The command '/bin/sh -c dotnet restore' returned a non-zero code: 1

In any case I cannot build the image. Can you help me?

Thanks,
   F.D.

On Thu, Jan 3, 2019 at 10:19 AM F.D. <[hidden email]> wrote:
Ok, so your idea is to build an image starting from Microsoft .NET image. Then you add the java jdk, and make a c# project that launch the ignite node, is it right?

Can you clarify to me these lines:

...
RUN dotnet restore
...
ENTRYPOINT ["dotnet", "run"]

thanks,
   F.D.



On Fri, Dec 21, 2018 at 6:09 PM Pavel Tupitsyn <[hidden email]> wrote:
Here is a gist to run Ignite.NET in Docker on Linux & .NET Core:

Confirmed to work with Ignite.NET Client on Windows.

Let me know if you need more info.
Looks like you use some event API with remote filters, make sure that remote filter class is available on server node and registered in BinaryConfiguration.
Same is true for any other code that is executed remotely.

Thanks,
Pavel

On Fri, Dec 21, 2018 at 2:14 PM F.D. <[hidden email]> wrote:
Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
ptupitsyn ptupitsyn
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

I see.

Anyway, try the new image, it is more properly built: 
contains published files instead of source code, and includes only runtime (not sdk/jdk).

Thanks,
Pavel

On Fri, Jan 4, 2019 at 7:13 PM F.D. <[hidden email]> wrote:
Yes I agree with you. The proxy is needed because in my office is present a firewall. But from my host can use nuget without problems, I got errors only in docker.

Thanks,
  F.D.


On Fri, Jan 4, 2019 at 4:30 PM Pavel Tupitsyn <[hidden email]> wrote:
Looks like you have some network issues and NuGet repository can not be accessed.
Can you describe your environment? Why is the proxy needed?

Also I've built and pushed Ignite.NET docker image to my personal hub, maybe this helps? 
    docker run ptupitsyn/ignite:ignite-net


Thanks,
Pavel

On Thu, Jan 3, 2019 at 5:20 PM F.D. <[hidden email]> wrote:
I've done some further steps.

now the docker file is:
FROM microsoft/dotnet:2.1-sdk

ENV http_proxy='http://10.0.75.1:3128'
ENV https_proxy='https://10.0.75.1:3128'

WORKDIR /app

RUN apt update && apt install default-jdk -y --no-install-recommends

COPY *.csproj ./
COPY nuget.config ./

RUN dotnet restore --configfile nuget.config

COPY . ./
ENTRYPOINT ["dotnet", "run"]


I've added some env variables to permits to the apt to install the jdk. But now I've a problem with nuget.
I added a configuration file:
<configuration>
<config>
<add key="http_proxy" value="http://10.0.75.1:3128" />
</config>
</configuration>

But I got this error message:

 ---> Running in 1f6391892153
  Restoring packages for /app/ignite-docker-test.csproj...
/app/ignite-docker-test.csproj : error NU1100: Unable to resolve 'Apache.Ignite (>= 2.7.0)' for '.NETCoreApp,Version=v2.1'.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.props.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.targets.
  Restore failed in 192.91 ms for /app/ignite-docker-test.csproj.
The command '/bin/sh -c dotnet restore --configfile nuget.config' returned a non-zero code: 1

If I remove
--configfile nuget.config

I got this error:

 ---> Running in 525375280b79
  Restoring packages for /app/ignite-docker-test.csproj...
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/app/ignite-docker-test.csproj]
The command '/bin/sh -c dotnet restore' returned a non-zero code: 1

In any case I cannot build the image. Can you help me?

Thanks,
   F.D.

On Thu, Jan 3, 2019 at 10:19 AM F.D. <[hidden email]> wrote:
Ok, so your idea is to build an image starting from Microsoft .NET image. Then you add the java jdk, and make a c# project that launch the ignite node, is it right?

Can you clarify to me these lines:

...
RUN dotnet restore
...
ENTRYPOINT ["dotnet", "run"]

thanks,
   F.D.



On Fri, Dec 21, 2018 at 6:09 PM Pavel Tupitsyn <[hidden email]> wrote:
Here is a gist to run Ignite.NET in Docker on Linux & .NET Core:

Confirmed to work with Ignite.NET Client on Windows.

Let me know if you need more info.
Looks like you use some event API with remote filters, make sure that remote filter class is available on server node and registered in BinaryConfiguration.
Same is true for any other code that is executed remotely.

Thanks,
Pavel

On Fri, Dec 21, 2018 at 2:14 PM F.D. <[hidden email]> wrote:
Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.
F.D. F.D.
Reply | Threaded
Open this post in threaded view
|

Re: Ignite .NET in docker (linux)?

Ok.

Thank you vary much,
   F.D.

On Fri, Jan 4, 2019 at 6:38 PM Pavel Tupitsyn <[hidden email]> wrote:
I see.

Anyway, try the new image, it is more properly built: 
contains published files instead of source code, and includes only runtime (not sdk/jdk).

Thanks,
Pavel

On Fri, Jan 4, 2019 at 7:13 PM F.D. <[hidden email]> wrote:
Yes I agree with you. The proxy is needed because in my office is present a firewall. But from my host can use nuget without problems, I got errors only in docker.

Thanks,
  F.D.


On Fri, Jan 4, 2019 at 4:30 PM Pavel Tupitsyn <[hidden email]> wrote:
Looks like you have some network issues and NuGet repository can not be accessed.
Can you describe your environment? Why is the proxy needed?

Also I've built and pushed Ignite.NET docker image to my personal hub, maybe this helps? 
    docker run ptupitsyn/ignite:ignite-net


Thanks,
Pavel

On Thu, Jan 3, 2019 at 5:20 PM F.D. <[hidden email]> wrote:
I've done some further steps.

now the docker file is:
FROM microsoft/dotnet:2.1-sdk

ENV http_proxy='http://10.0.75.1:3128'
ENV https_proxy='https://10.0.75.1:3128'

WORKDIR /app

RUN apt update && apt install default-jdk -y --no-install-recommends

COPY *.csproj ./
COPY nuget.config ./

RUN dotnet restore --configfile nuget.config

COPY . ./
ENTRYPOINT ["dotnet", "run"]


I've added some env variables to permits to the apt to install the jdk. But now I've a problem with nuget.
I added a configuration file:
<configuration>
<config>
<add key="http_proxy" value="http://10.0.75.1:3128" />
</config>
</configuration>

But I got this error message:

 ---> Running in 1f6391892153
  Restoring packages for /app/ignite-docker-test.csproj...
/app/ignite-docker-test.csproj : error NU1100: Unable to resolve 'Apache.Ignite (>= 2.7.0)' for '.NETCoreApp,Version=v2.1'.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.props.
  Generating MSBuild file /app/obj/ignite-docker-test.csproj.nuget.g.targets.
  Restore failed in 192.91 ms for /app/ignite-docker-test.csproj.
The command '/bin/sh -c dotnet restore --configfile nuget.config' returned a non-zero code: 1

If I remove
--configfile nuget.config

I got this error:

 ---> Running in 525375280b79
  Restoring packages for /app/ignite-docker-test.csproj...
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/app/ignite-docker-test.csproj]
/usr/share/dotnet/sdk/2.1.502/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/app/ignite-docker-test.csproj]
The command '/bin/sh -c dotnet restore' returned a non-zero code: 1

In any case I cannot build the image. Can you help me?

Thanks,
   F.D.

On Thu, Jan 3, 2019 at 10:19 AM F.D. <[hidden email]> wrote:
Ok, so your idea is to build an image starting from Microsoft .NET image. Then you add the java jdk, and make a c# project that launch the ignite node, is it right?

Can you clarify to me these lines:

...
RUN dotnet restore
...
ENTRYPOINT ["dotnet", "run"]

thanks,
   F.D.



On Fri, Dec 21, 2018 at 6:09 PM Pavel Tupitsyn <[hidden email]> wrote:
Here is a gist to run Ignite.NET in Docker on Linux & .NET Core:

Confirmed to work with Ignite.NET Client on Windows.

Let me know if you need more info.
Looks like you use some event API with remote filters, make sure that remote filter class is available on server node and registered in BinaryConfiguration.
Same is true for any other code that is executed remotely.

Thanks,
Pavel

On Fri, Dec 21, 2018 at 2:14 PM F.D. <[hidden email]> wrote:
Thanks for your support, but I need more informations. Let me try to give you more details:
I've launched a ignite node on docker with this command:

docker run -it --rm --name ignite --net=host apacheignite/ignite

Then I try to connect to my dotnet client with this configuration:
Snippet
Ignite = Ignition.Start(new IgniteConfiguration
{
   Localhost = Dns.GetHostName(),
   ClientMode = true,
   DiscoverySpi = new TcpDiscoverySpi
   {
      IpFinder = new TcpDiscoveryMulticastIpFinder
      {
         LocalAddress = "AAA.BBB.CCC.DDD"
      },       SocketTimeout = TimeSpan.FromSeconds(0.3)    },    IncludedEventTypes = EventType.CacheAll, });
But I got this errors on the server node:

[10:36:28,512][SEVERE][sys-stripe-2-#3][query] CacheEntryEventFilter failed: class o.a.i.IgniteException: Platforms are not available [nodeId=861e0f56-6a8b-4ff9-9ea0-a6e5c4d3126b] (Use Apache.Ignite.Core.Ignition.Start() or Apache.Ignite.exe to start Ignite.NET nodes; ignite::Ignition::Start() or ignite.exe to start Ignite C++ nodes).

I suppose I should start the .NET Ignite (the thing that I did when I didn't use docker). Can you help me?

Thanks,
   F.D.



On Thu, Dec 20, 2018 at 7:10 PM Pavel Tupitsyn <[hidden email]> wrote:
1. Yes, Ignite.NET will run in Linux docker container under .NET Core. 
You can use microsoft/dotnet:sdk base image, install Java there (apt install default-jdk), and run your app

2. There are no Windows containers with Ignite

Thanks,
Pavel

On Thu, Dec 20, 2018 at 4:07 PM Ilya Kasnacheev <[hidden email]> wrote:
Hello!

For the first question: There's no reason that you would not be able to run Java, Mono or dotnet core Ignite node inside docket, connect to it with C# client.

Should be working as soon as you configure it properly.

Regards,
--
Ilya Kasnacheev


чт, 20 дек. 2018 г. в 12:36, F.D. <[hidden email]>:
Hi Igniters,
I'd like to know if is it possible to use ignite docker (with linux O.S.) and connect a ignite client in C#. I suppose no, is it?

So the second question, is already present in the docker repository an image for Ignite .NET (with windows O.S.)?

Thanks,
  F.D.