diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..9e4804f --- /dev/null +++ b/.env.example @@ -0,0 +1,8 @@ +# URL сервиса Modeus +MODEUS_URL= +# Имя пользователя для авторизации в Microsoft +MS_USERNAME= +# Пароль для авторизации в Microsoft +MS_PASSWORD= +# (опционально) Ключ API для защиты эндпоинта /auth/ms +API_KEY= \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2668ed7..8df2cb2 100644 --- a/.gitignore +++ b/.gitignore @@ -485,3 +485,5 @@ $RECYCLE.BIN/ src/appsettings.Development.json + +.env diff --git a/README.md b/README.md index bc178d9..ab54e45 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,12 @@ cd src dotnet run ``` +или + +```bash +docker compose -f docker-compose-dev.yml up +``` + 1. Выполните запрос: ```bash diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml new file mode 100644 index 0000000..87281e9 --- /dev/null +++ b/docker-compose-dev.yml @@ -0,0 +1,14 @@ +services: + app: + container_name: ModeusSchedule.MSAuth + build: + context: ./src + dockerfile: Dockerfile + ports: + - '5000:8080' + environment: + - MODEUS_URL=${MODEUS_URL} + - MS_USERNAME=${MS_USERNAME} + - MS_PASSWORD=${MS_PASSWORD} + - API_KEY=${API_KEY} + restart: unless-stopped diff --git a/src/.dockerignore b/src/.dockerignore new file mode 100644 index 0000000..c36ca53 --- /dev/null +++ b/src/.dockerignore @@ -0,0 +1,27 @@ +**/.playwright +**/.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 +**/appsettings.Development.json \ No newline at end of file diff --git a/src/Dockerfile b/src/Dockerfile new file mode 100644 index 0000000..a8f13a9 --- /dev/null +++ b/src/Dockerfile @@ -0,0 +1,24 @@ +FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine3.22 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY . . +RUN dotnet restore "ModeusSchedule.MSAuth.csproj" +RUN dotnet publish "ModeusSchedule.MSAuth.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS final +EXPOSE 8080 +WORKDIR /app + +RUN apt-get update && \ + apt-get install -y --no-install-recommends wget && \ + wget -q https://github.com/PowerShell/PowerShell/releases/download/v7.5.2/powershell_7.5.2-1.deb_amd64.deb && \ + apt-get install -y ./powershell_7.5.2-1.deb_amd64.deb && \ + rm -f powershell_7.5.2-1.deb_amd64.deb && \ + rm -rf /var/lib/apt/lists/* + +ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright + +COPY --from=build /app/publish . +RUN pwsh ./playwright.ps1 install --with-deps chromium + +ENTRYPOINT ["dotnet", "ModeusSchedule.MSAuth.dll"] \ No newline at end of file