diff --git a/Dockerfile b/Dockerfile index 7f0f811..c62b4cc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,63 +1,27 @@ -# +---------------------------+ -# | Prepare build environment | -# +---------------------------+ -FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/nightly/sdk:8.0-preview AS phantom-base-builder +# +---------------+ +# | Prepare build | +# +---------------+ +FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/nightly/sdk:8.0 AS phantom-builder ARG TARGETARCH ADD . /app WORKDIR /app +RUN dotnet publish PhantomPanel.sln \ + /p:DebugType=None \ + /p:DebugSymbols=false \ + --arch "$TARGETARCH" \ + --configuration Release + +RUN find .artifacts/publish/*/* -maxdepth 0 -execdir mv '{}' 'release' \; + + +# +---------------------+ +# | Phantom Agent image | +# +---------------------+ +FROM mcr.microsoft.com/dotnet/nightly/runtime:8.0 AS phantom-agent + RUN mkdir /data && chmod 777 /data -RUN dotnet restore --arch "$TARGETARCH" - - -# +---------------------+ -# | Build Phantom Agent | -# +---------------------+ -FROM phantom-base-builder AS phantom-agent-builder - -RUN dotnet publish Agent/Phantom.Agent/Phantom.Agent.csproj \ - /p:DebugType=None \ - /p:DebugSymbols=false \ - --no-restore \ - --arch "$TARGETARCH" \ - --configuration Release \ - --output /app/out - - -# +--------------------------+ -# | Build Phantom Controller | -# +--------------------------+ -FROM phantom-base-builder AS phantom-controller-builder - -RUN dotnet publish Controller/Phantom.Controller/Phantom.Controller.csproj \ - /p:DebugType=None \ - /p:DebugSymbols=false \ - --no-restore \ - --arch "$TARGETARCH" \ - --configuration Release \ - --output /app/out - - -# +-------------------+ -# | Build Phantom Web | -# +-------------------+ -FROM phantom-base-builder AS phantom-controller-builder - -RUN dotnet publish Web/Phantom.Web/Phantom.Web.csproj \ - /p:DebugType=None \ - /p:DebugSymbols=false \ - --no-restore \ - --arch "$TARGETARCH" \ - --configuration Release \ - --output /app/out - - -# +------------------------------+ -# | Finalize Phantom Agent image | -# +------------------------------+ -FROM mcr.microsoft.com/dotnet/nightly/runtime:8.0-preview AS phantom-agent - WORKDIR /data COPY --from=eclipse-temurin:8-jre /opt/java/openjdk /opt/java/8 @@ -74,30 +38,32 @@ RUN --mount=target=/var/lib/apt/lists,type=cache,sharing=locked \ apt-get install -y \ zstd -COPY --from=phantom-agent-builder --chmod=755 /app/out /app +COPY --from=phantom-builder --chmod=755 /app/.artifacts/publish/Phantom.Agent/release /app ENTRYPOINT ["dotnet", "/app/Phantom.Agent.dll"] -# +-----------------------------------+ -# | Finalize Phantom Controller image | -# +-----------------------------------+ -FROM mcr.microsoft.com/dotnet/nightly/runtime:8.0-preview AS phantom-controller +# +--------------------------+ +# | Phantom Controller image | +# +--------------------------+ +FROM mcr.microsoft.com/dotnet/nightly/runtime:8.0 AS phantom-controller +RUN mkdir /data && chmod 777 /data WORKDIR /data -COPY --from=phantom-controller-builder --chmod=755 /app/out /app +COPY --from=phantom-builder --chmod=755 /app/.artifacts/publish/Phantom.Controller/release /app ENTRYPOINT ["dotnet", "/app/Phantom.Controller.dll"] -# +----------------------------+ -# | Finalize Phantom Web image | -# +----------------------------+ -FROM mcr.microsoft.com/dotnet/nightly/aspnet:8.0-preview AS phantom-web +# +-------------------+ +# | Phantom Web image | +# +-------------------+ +FROM mcr.microsoft.com/dotnet/nightly/aspnet:8.0 AS phantom-web +RUN mkdir /data && chmod 777 /data WORKDIR /data -COPY --from=phantom-web-builder --chmod=755 /app/out /app +COPY --from=phantom-builder --chmod=755 /app/.artifacts/publish/Phantom.Web/release /app ENTRYPOINT ["dotnet", "/app/Phantom.Web.dll"]