J'ai développé une application dans asp.net-core 2.0 preview1. J'ai développé sur Windows avec Visual Studio 2017.
Maintenant, je veux le déployer sur un serveur Linux à l'aide de Docker.
J'ai créé un fichier Docker:
FROM Microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 44305
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "Aplication.dll"]
Après ces commandes en cours d'exécution:
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
Après la dernière commande run
j'obtiens la prochaine erreur:
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
Je suis nouveau avec asp.net-core et surtout avec Docker. Donc, toute aide à ce sujet est excellente.
Vous devez spécifier - r linux-x64 paramètre dans la commande dotnet publish comme ça:
dotnet publish -o obj/Docker/publish -c Release -r linux-x64
Cela fera un déploiement autonome.
Essayez d'utiliser cette image "2.0.0-preview1". Modifiez simplement la première ligne sur FROM Microsoft/aspnetcore: 2.0.0-preview1, si votre section locale a un cœur dotnet en aperçu 1.
Si cela ne fonctionne pas, vérifiez votre version de base de dotnet locale, elle pointe vers 2.0.0-preview2-final, puis changez toutes vos références pointant vers 2.0.0-preview2-final dans le fichier csproj, puis utilisez le 2.0.0-preview2 image. Cela vous aiderait j'espère.