docker-composeを使用してDockerでローカルに実行するように設定されたプロジェクトがあります。最近まで、問題なく動作しています。私はこれに影響するはずの何かを変更したとは思わない(おそらくVSのアップグレードを除いて?)、そして古いコミットにロールバックすることを試みた。すべての場合において、Visual Studioの出力ウィンドウに次のように表示されるエラーメッセージが表示されます。
docker exec -i f93fb2962a1e sh -c ""dotnet" --additionalProbingPath /root/.nuget/packages --additionalProbingPath /root/.nuget/fallbackpackages "bin/Debug/netcoreapp3.1/MattsTwitchBot.Web.dll" | tee /dev/console"
sh: 0: getcwd() failed: No such file or directory
It was not possible to find any installed .NET Core SDKs
Did you mean to run .NET Core SDK commands? Install a .NET Core SDK from:
https://aka.ms/dotnet-download
さまざまな方法(Dockerファイルのベースイメージの変更、古いイメージとコンテナーの削除など)を試しましたが、同じエラーメッセージが表示され続けます。奇妙なことに、[ファイル]> [新規]を実行すると、Visual Studioは非常によく似たDockerファイルを生成し、正常に動作します。問題が何であるかはわかりませんが、ここの誰かがそれを見つけられることを望んでいます。
私の完全なリポジトリはGithubで入手できます。これがasp.netコアプロジェクトのドッカーです。
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["MattsTwitchBot.Web/MattsTwitchBot.Web.csproj", "MattsTwitchBot.Web/"]
COPY ["MattsTwitchBot.Core/MattsTwitchBot.Core.csproj", "MattsTwitchBot.Core/"]
RUN dotnet restore "MattsTwitchBot.Web/MattsTwitchBot.Web.csproj"
COPY . .
WORKDIR "/src/MattsTwitchBot.Web"
RUN dotnet build "MattsTwitchBot.Web.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "MattsTwitchBot.Web.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MattsTwitchBot.Web.dll"]
そして、ソリューションのためのdocker-compose(Couchbaseのものがない場合でも同じエラーが発生しますが、完全を期すためにここに貼り付けています):
version: '3.4'
services:
couchbase:
image: couchbase:6.5.0-beta2
volumes:
- "./couchbasetwitchbot:/opt/couchbase/var" # couchbase data folder
ports:
- "8091-8096:8091-8096" # https://docs.couchbase.com/server/current/install/install-ports.html
- "11210-11211:11210-11211"
mattstwitchbot.web:
image: ${DOCKER_REGISTRY-}mattstwitchbotweb
build:
context: .
dockerfile: MattsTwitchBot.Web/Dockerfile
environment:
Couchbase__Servers__0: http://couchbase:8091/ # Reference to the "couchbase" service name on line 4
depends_on:
- couchbase # Reference to the "couchbase" service name on line 4
command: ["./wait-for-it.sh", "http://couchbase:8091"]