diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..cd967fc --- /dev/null +++ b/.dockerignore @@ -0,0 +1,25 @@ +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/.idea +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md \ No newline at end of file diff --git a/src/Dockerfile b/src/Dockerfile new file mode 100644 index 0000000..cc7eb8e --- /dev/null +++ b/src/Dockerfile @@ -0,0 +1,17 @@ +FROM mcr.microsoft.com/dotnet/sdk:8.0.303 AS base +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY . /src +RUN dotnet restore "src/SimpleAdmin.Api/SimpleAdmin.Api.csproj" +WORKDIR "/src/src/SimpleAdmin.Api" +RUN dotnet build "SimpleAdmin.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM base AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "SimpleAdmin.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# 使用运行时镜像 +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "SimpleAdmin.Api.dll"] diff --git a/src/SimpleAdmin.Api.csproj b/src/SimpleAdmin.Api.csproj index 6169fe9..e477d32 100644 --- a/src/SimpleAdmin.Api.csproj +++ b/src/SimpleAdmin.Api.csproj @@ -5,6 +5,7 @@ enable enable e3d506cf-f5ce-4ba5-bc8e-ab2c179f3034 + Linux @@ -15,4 +16,10 @@ + + + .dockerignore + + + \ No newline at end of file