2

Skaffold.dev を使用して、Kubernetes での開発エクスペリエンスを改善することを検討しています。

デフォルトの .NET API プロジェクトを作成し、Docker ファイルを自動生成しました。

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

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 ["TestMicro/TestMicro.csproj", "TestMicro/"]
RUN dotnet restore "TestMicro/TestMicro.csproj"
COPY . .
WORKDIR "/src/TestMicro"
RUN dotnet build "TestMicro.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "TestMicro.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "TestMicro.dll"]

Kubernetes マニフェストを作成しましたが、すべて正常に動作していkubectl applyます。

scaffold をインストールした後、実行しskaffold initたところ、これが自動生成されました

apiVersion: skaffold/v2beta8
kind: Config
metadata:
  name: microservices-investigation
build:
  artifacts:
  - image: testmicro
    context: src\Microservices\TestMicro
deploy:
  kubectl:
    manifests:
    - k8s/TestMicro.yaml

ただし、実行するskaffold runと次のようになります。

$ skaffold run
Generating tags...
 - testmicro -> testmicro:bd61fc5-dirty
Checking cache...
 - testmicro: Error checking cache.
failed to build: getting hash for artifact "testmicro": getting dependencies for "testmicro": file pattern [TestMicro/TestMicro.csproj] must match at least one file

docker buildこれは、CLI から実行するときに、 docker build -f Dockerfile .. see why hereを実行する必要があるためだと思います。

これを skaffold の yaml ファイルに変換する方法がわかりません。何か案は?!

4

1 に答える 1