diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..38bece4 --- /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/Lagrange.Milky/Dockerfile b/Lagrange.Milky/Dockerfile new file mode 100644 index 0000000..cfdd16d --- /dev/null +++ b/Lagrange.Milky/Dockerfile @@ -0,0 +1,32 @@ +FROM alpine:3.23 AS base +USER root +USER $APP_UID +WORKDIR /app + +FROM mcr.microsoft.com/dotnet/sdk:10.0-alpine AS build +RUN apk update && apk add build-base +ARG BUILD_CONFIGURATION=Release +ARG GIT_SHA=Unknown +ENV DOCKER=true +WORKDIR /src +COPY ["Lagrange.Milky/Lagrange.Milky.csproj", "Lagrange.Milky/"] +COPY ["Lagrange.Codec/Lagrange.Codec.csproj", "Lagrange.Codec/"] +COPY ["Lagrange.Core/Lagrange.Core.csproj", "Lagrange.Core/"] +COPY ["Lagrange.Proto.Generator/Lagrange.Proto.Generator.csproj", "Lagrange.Proto.Generator/"] +COPY ["Lagrange.Proto/Lagrange.Proto.csproj", "Lagrange.Proto/"] +COPY ["Lagrange.Milky.Implementation.Api.Generator/Lagrange.Milky.Implementation.Api.Generator.csproj", "Lagrange.Milky.Implementation.Api.Generator/"] +RUN dotnet restore "Lagrange.Milky/Lagrange.Milky.csproj" +COPY . . +WORKDIR "/src/Lagrange.Milky" +RUN dotnet build "./Lagrange.Milky.csproj" -p:SourceRevisionId=$GIT_SHA -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./Lagrange.Milky.csproj" -p:SourceRevisionId=$GIT_SHA -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM base AS final +WORKDIR /app +ENV DOCKER=true +COPY --from=publish /app/publish . +WORKDIR /data +ENTRYPOINT ["/app/Lagrange.Milky"] diff --git a/Lagrange.Milky/Lagrange.Milky.csproj b/Lagrange.Milky/Lagrange.Milky.csproj index c9f5038..0e4b091 100644 --- a/Lagrange.Milky/Lagrange.Milky.csproj +++ b/Lagrange.Milky/Lagrange.Milky.csproj @@ -6,6 +6,10 @@ enable true + + Linux + true + true @@ -33,4 +37,10 @@ + + + + .dockerignore + + \ No newline at end of file