Add Dockerfile_project01
This commit is contained in:
parent
bce7afc7ca
commit
cb5f4dc54a
66
Dockerfile_project01
Normal file
66
Dockerfile_project01
Normal file
@ -0,0 +1,66 @@
|
||||
# === BUILD ===
|
||||
FROM docker.nexus.local/dotnet-v7-sdk_test:v7.0.410 AS build
|
||||
|
||||
# Определяем аргументы аргументы
|
||||
ARG NUGET_CONFIG_FILE="./nuget.config"
|
||||
#ARG PROJECT_PATH
|
||||
ARG CSPROJ_FILE="./App01.csproj"
|
||||
ARG BUILD_CONFIGURATION=Release
|
||||
|
||||
# Устанавливаем рабочую директорию
|
||||
WORKDIR /app
|
||||
|
||||
# Копируем файлы проекта
|
||||
#COPY $NUGET_CONFIG_FILE .
|
||||
COPY . .
|
||||
|
||||
# Очищаем локальные кэши NuGet
|
||||
RUN dotnet nuget locals all --clear
|
||||
|
||||
# Восстанавливаем зависимости
|
||||
RUN dotnet restore $CSPROJ_FILE \
|
||||
--configfile $NUGET_CONFIG_FILE \
|
||||
--no-cache --interactive --verbosity minimal --force
|
||||
|
||||
#Собираем приложение
|
||||
RUN dotnet build "$CSPROJ_FILE" -c $BUILD_CONFIGURATION -o /app/build
|
||||
|
||||
# RUN export SYFT_CHECK_FOR_APP_UPDATE=false && syft --output cyclonedx-json=/app/publish/CycloneDX-Sbom.json dir:/app/publish && ls -lt && cat /app/publish/CycloneDX-Sbom.json
|
||||
|
||||
# ==== PUBLISH ====
|
||||
FROM build AS publish
|
||||
ARG BUILD_CONFIGURATION=Release
|
||||
# Публикуем приложение
|
||||
RUN dotnet publish "$CSPROJ_FILE" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
|
||||
|
||||
|
||||
# === RUNTIME ===
|
||||
FROM docker.nexus.local/dotnet-v7-runtime:v7.0.20 AS runtime
|
||||
|
||||
# Создаём непривилегированного пользователя для безопасности
|
||||
RUN groupadd --system mmedo-admin && useradd --system --uid 10001 --gid mmedo-admin --no-create-home --shell /sbin/nologin mmedo-admin
|
||||
|
||||
# Устанавливаем рабочую директорию
|
||||
WORKDIR /app
|
||||
|
||||
# Определяем аргументы аргументы
|
||||
ARG PROJECT_DLL="/app/App01.dll"
|
||||
|
||||
# Определяем переменные
|
||||
ENV PROJECT_DLL=$PROJECT_DLL
|
||||
|
||||
# Копируем опубликованные файлы из стадии сборки
|
||||
COPY --from=publish /app/publish /app/
|
||||
|
||||
# Устанавливаем права доступа
|
||||
RUN chown -R mmedo-admin:mmedo-admin /app
|
||||
# Переходим на безопасного пользователя
|
||||
USER mmedo-admin
|
||||
|
||||
|
||||
# Открываем порт для ASP.NET Core приложения
|
||||
EXPOSE 5000
|
||||
|
||||
# Запускаем приложение
|
||||
CMD ["dotnet", "/app/App01.dll"]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user