CodeToImageGenerator

Форк
0
67 строк · 2.0 Кб
1
# Use the official Microsoft .NET SDK image as a build stage
2
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
3
WORKDIR /src
4

5
# Copy csproj and restore dependencies
6
COPY ["CodeToImageGenerator.Web/CodeToImageGenerator.Web.csproj", "CodeToImageGenerator.Web/"]
7
COPY ["CodeToImageGenerator.Common/CodeToImageGenerator.Common.csproj", "CodeToImageGenerator.Common/"]
8
RUN dotnet restore "CodeToImageGenerator.Web/CodeToImageGenerator.Web.csproj"
9

10
# Copy the rest of the files and build
11
COPY . .
12
WORKDIR "/src/CodeToImageGenerator.Web"
13
RUN dotnet build "CodeToImageGenerator.Web.csproj" -c Release -o /app/build
14

15
# Publish
16
FROM build AS publish
17
RUN dotnet publish "CodeToImageGenerator.Web.csproj" -c Release -o /app/publish
18

19
# Build runtime image
20
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final
21
WORKDIR /app
22

23
# Installing dependencies for Chromium
24
RUN apt-get update && apt-get install -y \
25
    wget \
26
    ca-certificates \
27
    fonts-liberation \
28
    libasound2 \
29
    libatk-bridge2.0-0 \
30
    libatk1.0-0 \
31
    libcups2 \
32
    libdbus-1-3 \
33
    libnss3 \
34
    libx11-xcb1 \
35
    libxcomposite1 \
36
    libxdamage1 \
37
    libxrandr2 \
38
    libgbm1 \
39
    libgtk-3-0 \
40
    libxshmfence1 \
41
    libu2f-udev \
42
    xdg-utils \
43
    libgconf-2-4 \
44
    --no-install-recommends && rm -rf /var/lib/apt/lists/*
45

46
# Downloading and installing Chromium
47
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
48
    && apt-get update && apt-get install -y ./google-chrome-stable_current_amd64.deb \
49
    && rm google-chrome-stable_current_amd64.deb
50

51
# Setting environment variable for Chromium
52
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable
53

54

55
# Creating new user
56
RUN groupadd -r pptruser && useradd -r -g pptruser -G audio,video pptruser \
57
    && mkdir -p /home/pptruser/Downloads \
58
    && chown -R pptruser:pptruser /home/pptruser \
59
    && chown -R pptruser:pptruser /app
60

61
EXPOSE 80
62
EXPOSE 443
63
COPY --from=publish /app/publish .
64

65
USER pptruser
66

67
ENTRYPOINT ["dotnet", "CodeToImageGenerator.Web.dll"]

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.