CodeToImageGenerator
/
Dockerfile
67 строк · 2.0 Кб
1# Use the official Microsoft .NET SDK image as a build stage
2FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
3WORKDIR /src
4
5# Copy csproj and restore dependencies
6COPY ["CodeToImageGenerator.Web/CodeToImageGenerator.Web.csproj", "CodeToImageGenerator.Web/"]
7COPY ["CodeToImageGenerator.Common/CodeToImageGenerator.Common.csproj", "CodeToImageGenerator.Common/"]
8RUN dotnet restore "CodeToImageGenerator.Web/CodeToImageGenerator.Web.csproj"
9
10# Copy the rest of the files and build
11COPY . .
12WORKDIR "/src/CodeToImageGenerator.Web"
13RUN dotnet build "CodeToImageGenerator.Web.csproj" -c Release -o /app/build
14
15# Publish
16FROM build AS publish
17RUN dotnet publish "CodeToImageGenerator.Web.csproj" -c Release -o /app/publish
18
19# Build runtime image
20FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final
21WORKDIR /app
22
23# Installing dependencies for Chromium
24RUN apt-get update && apt-get install -y \
25wget \
26ca-certificates \
27fonts-liberation \
28libasound2 \
29libatk-bridge2.0-0 \
30libatk1.0-0 \
31libcups2 \
32libdbus-1-3 \
33libnss3 \
34libx11-xcb1 \
35libxcomposite1 \
36libxdamage1 \
37libxrandr2 \
38libgbm1 \
39libgtk-3-0 \
40libxshmfence1 \
41libu2f-udev \
42xdg-utils \
43libgconf-2-4 \
44--no-install-recommends && rm -rf /var/lib/apt/lists/*
45
46# Downloading and installing Chromium
47RUN 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
52ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/google-chrome-stable
53
54
55# Creating new user
56RUN 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
61EXPOSE 80
62EXPOSE 443
63COPY --from=publish /app/publish .
64
65USER pptruser
66
67ENTRYPOINT ["dotnet", "CodeToImageGenerator.Web.dll"]