#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/runtime:3.1-buster-slim AS base FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base WORKDIR /app FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build WORKDIR /src #COPY ["LiteFccCoreMain/LiteFccCoreMain.csproj", "LiteFccCoreMain/"] #COPY ["Devices/Pumps/HengShan_Pump_TQC_IFSF/HengShan_Pump_TQC_IFSF.csproj", "Devices/Pumps/HengShan_Pump_TQC_IFSF/"] #COPY ["Framework/Edge.Core/Edge.Core.csproj", "Framework/Edge.Core/"] #COPY ["Devices/Pumps/Wayne_Pump_Dart/Wayne_Pump_Dart.csproj", "Devices/Pumps/Wayne_Pump_Dart/"] #COPY ["Framework/Edge.WebHost/Edge.WebHost.csproj", "Framework/Edge.WebHost/"] #COPY ["Extension/Fdc/FdcServerHost/FdcServerHost.csproj", "Extension/Fdc/FdcServerHost/"] #COPY ["Extension/Fdc/FDCPOSInterfaceServer/FDCPOSInterfaceServer.csproj", "Extension/Fdc/FDCPOSInterfaceServer/"] #RUN dotnet restore "LiteFccCoreMain/LiteFccCoreMain.csproj" COPY ./ ./ WORKDIR /src RUN dotnet restore LiteFccCore.sln COPY . . #RUN dotnet build "LiteFccCore.sln" -c Release -o /app/build # by reading a version file in source ARG VCS_REF_APP_VERSION_PREFIX # git hub action will assign a unique number, but here only use last 4 digits as limitation of .NET CORE ARG VCS_REF_GITHUB_RUN_ID_LAST_FOUR ARG Final_Assembly_VersionStr=${VCS_REF_APP_VERSION_PREFIX}\.${VCS_REF_GITHUB_RUN_ID_LAST_FOUR} FROM build AS publish RUN dotnet publish LiteFccCore.sln /p:AssemblyVersion=\"${Final_Assembly_VersionStr}\" /p:Version=\"${Final_Assembly_VersionStr}\" /p:FileVersion=\"${Final_Assembly_VersionStr}\" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ARG VCS_REF_COMMIT_AUTHOR_NAME ARG VCS_REF_COMMIT_MSG ARG VCS_REF_COMMIT_SHA_SHORT ARG VCS_REF ARG VERSION ARG BUILD_DATE ARG VCS_REF_APP_VERSION_PREFIX ARG VCS_REF_GITHUB_RUN_ID_LAST_FOUR RUN echo VCS_REF_COMMIT_AUTHOR_NAME: ${VCS_REF_COMMIT_AUTHOR_NAME} RUN echo VCS_REF_COMMIT_MSG: ${VCS_REF_COMMIT_MSG} RUN echo VCS_REF_COMMIT_SHA_SHORT: ${VCS_REF_COMMIT_SHA_SHORT} RUN echo VCS_REF: ${VCS_REF} RUN echo VERSION: ${VERSION} RUN echo BUILD_DATE: ${BUILD_DATE} RUN echo VCS_REF_APP_VERSION_PREFIX: ${VCS_REF_APP_VERSION_PREFIX} RUN echo VCS_REF_GITHUB_RUN_ID_LAST_FOUR: ${VCS_REF_GITHUB_RUN_ID_LAST_FOUR} LABEL VCS_REF_COMMIT_AUTHOR_NAME=${VCS_REF_COMMIT_AUTHOR_NAME} LABEL VCS_REF_COMMIT_MSG=${VCS_REF_COMMIT_MSG} LABEL VCS_REF_COMMIT_SHA_SHORT=${VCS_REF_COMMIT_SHA_SHORT} LABEL VCS_REF=${VCS_REF} LABEL VERSION=${VERSION} LABEL BUILD_DATE=${BUILD_DATE} LABEL VCS_REF_GITHUB_RUN_ID_LAST_FOUR=${VCS_REF_GITHUB_RUN_ID_LAST_FOUR} LABEL VCS_REF_APP_VERSION_PREFIX=${VCS_REF_APP_VERSION_PREFIX} ENTRYPOINT ["dotnet", "LiteFccCore.dll"]