Asp.net-core 2.0 preview1でアプリケーションを開発しました。 Visual Studio 2017を使用してWindowsで開発しました。
次に、Dockerを使用してLinuxサーバーに展開したいと思います。
Dockerファイルを作成しました:
FROM Microsoft/aspnetcore:2.0
ARG source
WORKDIR /app
EXPOSE 44305
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "Aplication.dll"]
コマンドを実行した後:
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
最後のコマンドrun
を参照してください。次のエラーが表示されます。
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
私はasp.net-core、特にDockerが初めてです。そのため、これに関する助けは素晴らしいです。
次のようなdotnet publishコマンドで-r linux-x64パラメーターを指定する必要があります。
dotnet publish -o obj/Docker/publish -c Release -r linux-x64
これにより、スタンドアロン展開が行われます。
この画像「2.0.0-preview1」を使用してみてください。ローカルにプレビュー1ドットネットコアがある場合、基本的に最初の行をFROM Microsoft/aspnetcore:2.0.0-preview1に変更します。
動作しない場合は、ローカルのドットネットコアバージョンを確認し、2.0.0-preview2-finalをポイントし、csprojファイルで2.0.0-preview2-finalを指すすべての参照を変更してから、2.0.0-preview2を使用します画像。あなたの助けになると思います。