I'm running into trouble with the following steps:
- Create a simple C# .net 6 console app with the Hello World boilerplate, and publish the portable binaries locally.
- Create a docker container based on mcr.microsoft.com/dotnet/sdk:6.0
- Copy the publish results to the container in a
consoleappdirectory. - Open an interactive session to the container
- Execute
/consoleapp/ConsoleApp1.exe
No error, but no result. Here's the (only) code in the app:
Console.WriteLine("Hello, World!");
I'm expecting to see:
Hello, World!
I feel like I'm missing something incredibly simple...any help would be appreciated.
CodePudding user response:
The .exe file is only for Windows. In the container (running on Linux) you start your app with
dotnet ConsoleApp1.dll
In this case your Dockerfile would look like this:
FROM mcr.microsoft.com/dotnet/runtime:6.0
WORKDIR /app
COPY bin/Release/net6.0/publish/* .
CMD ["dotnet", "ConsoleApp1.dll"]
