I developed application in asp.net-core 2.0 preview1. I developed on windows with Visual Studio 2017.
Now I want to deploy it to Linux server using Docker.
I created Docker file:
FROM microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 44305
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "Aplication.dll"]
After that running commands:
dotnet build -o obj/Docker/publish -c Release
dotnet publish -o obj/Docker/publish -c Release
docker build -t testapi-api .
docker run -p 44305:80 --name api testapi-api
Afer the last command run
I am getting next error:
An assembly specified in the application dependencies manifest (Aplication.deps.json) was not found:
package: 'Microsoft.AspNetCore.Antiforgery', version: '2.0.0-preview1-final'
path: 'lib/netcoreapp2.0/Microsoft.AspNetCore.Antiforgery.dll'
This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
manifest.win7-x64.xml;manifest.win7-x86.xml;manifest.osx-x64.xml;manifest.linux-x64.xml
I am new with asp.net-core and especially with Docker. So any help with this is great.
You need to specify -r linux-x64 parameter in dotnet publish command like that:
dotnet publish -o obj/Docker/publish -c Release -r linux-x64
This will make a standalone deployment.
Try to use this image "2.0.0-preview1". Basically change the first line to FROM microsoft/aspnetcore:2.0.0-preview1, if your local has preview 1 dotnet core.
If it not works, check your local dotnet core version, it it points to 2.0.0-preview2-final, then change all your references pointing to 2.0.0-preview2-final in csproj file, then use the 2.0.0-preview2 image. It would help you I hope.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With