Skip to content

Commit df21083

Browse files
committed
Task-983939- Troubleshoot details added to the UG
1 parent bb3bccf commit df21083

File tree

1 file changed

+113
-1
lines changed

1 file changed

+113
-1
lines changed

Document-Processing/PDF/Conversions/HTML-To-PDF/NET/troubleshooting.md

Lines changed: 113 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1568,4 +1568,116 @@ Refer to the following package reference:
15681568
</ItemGroup>
15691569

15701570
{% endhighlight %}
1571-
{% endtabs %}
1571+
{% endtabs %}
1572+
1573+
## Installing Chromium on Alpine without using edge to avoid Twistlock/Prisma security alerts
1574+
1575+
<table>
1576+
<th style="font-size:14px" width="100px">Issue</th>
1577+
<th style="font-size:14px">
1578+
Chromium is installed from the Alpine edge/community repository using:
1579+
<br/>
1580+
<code>apk add chromium --update-cache --repository http://nl.alpinelinux.org/alpine/edge/community</code>
1581+
<br/>
1582+
This enables HTML-to-PDF conversion but triggers Twistlock/Prisma Cloud security alerts due to packages pulled from the edge repository.
1583+
</th>
1584+
<tr>
1585+
<th style="font-size:14px" width="100px">Reason</th>
1586+
<td>
1587+
The <b>edge</b> repository is rolling/testing and can introduce newer dependencies and CVEs flagged by enterprise scanners. Using edge also reduces build reproducibility across environments.
1588+
</td>
1589+
</tr>
1590+
<tr>
1591+
<th style="font-size:14px" width="100px">Solution</th>
1592+
<td>
1593+
Install Chromium from the <b>stable Alpine repositories</b> (main/community) and include required runtime dependencies. This avoids the edge repo entirely and reduces security findings.
1594+
<br/><br/>
1595+
Use the following Dockerfile as a reference:
1596+
<br/><br/>
1597+
1598+
{% tabs %}
1599+
{% highlight C# tabtitle="Dockerfile (Alpine, stable repos)" %}
1600+
1601+
FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS base
1602+
1603+
RUN apk upgrade -U && \
1604+
apk add --no-cache tzdata && \
1605+
apk add --no-cache icu-libs && \
1606+
apk update && \
1607+
apk upgrade && \
1608+
apk add --no-cache openssl && \
1609+
apk update && \
1610+
apk upgrade --available && \
1611+
apk add --update ca-certificates && \
1612+
apk add --no-cache chromium && \
1613+
rm -rf /var/cache/apk/* && \
1614+
apk update && \
1615+
apk upgrade && \
1616+
apk add --no-cache \
1617+
libgdiplus fontconfig freetype ttf-dejavu libjpeg-turbo libpng mpg123 libopenmpt alsa-lib cairo cups-libs dbus-libs \
1618+
expat gdk-pixbuf glib gtk+3.0 nspr nss pango libstdc++ \
1619+
libx11 libxcomposite libxcursor libxdamage \
1620+
libxext libxfixes libxi libxrandr libxrender libxtst \
1621+
mesa-gl mesa-dri-gallium && \
1622+
rm -rf /var/cache/apk/*
1623+
1624+
RUN mkdir -p /crashpad && \
1625+
chown -R root:root /crashpad
1626+
1627+
ENV XDG_CONFIG_HOME=/tmp/.chromium
1628+
ENV XDG_CACHE_HOME=/tmp/.chromium
1629+
ENV CHROME_CRASHPAD_DATABASE=/crashpad
1630+
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
1631+
1632+
RUN mkdir -p /var/www/.config/google-chrome/Crashpad
1633+
1634+
WORKDIR /app
1635+
EXPOSE 8080
1636+
1637+
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build
1638+
ARG BUILD_CONFIGURATION=Release
1639+
WORKDIR /src
1640+
1641+
COPY ["Directory.Build.targets", "."]
1642+
COPY ["NuGet.config", "."]
1643+
COPY ["production/Ops.PDFConversionAPI.Web/Ops.PDFConversionAPI.Web.csproj", "production/Ops.PDFConversionAPI.Web/"]
1644+
1645+
RUN dotnet restore "./production/Ops.PDFConversionAPI.Web/Ops.PDFConversionAPI.Web.csproj"
1646+
1647+
COPY . .
1648+
1649+
WORKDIR "/src/production/Ops.PDFConversionAPI.Web"
1650+
RUN dotnet build "./Ops.PDFConversionAPI.Web.csproj" -c $BUILD_CONFIGURATION -o /app/build
1651+
1652+
FROM build AS publish
1653+
ARG BUILD_CONFIGURATION=Release
1654+
RUN dotnet publish "./Ops.PDFConversionAPI.Web.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
1655+
1656+
FROM base AS final
1657+
WORKDIR /app
1658+
COPY --from=publish /app/publish .
1659+
1660+
ENTRYPOINT ["dotnet", "Ops.PDFConversionAPI.Web.dll"]
1661+
{% endhighlight %}
1662+
{% endtabs %}
1663+
1664+
<b>Notes</b>:
1665+
- No edge repository is referenced; Chromium comes from stable Alpine repos.
1666+
- Typical Chromium paths on Alpine:
1667+
- <code>/usr/bin/chromium-browser</code> (symlink) or
1668+
- <code>/usr/lib/chromium/chromium</code>
1669+
Set this path in your converter settings:
1670+
{% tabs %}
1671+
{% highlight C# tabtitle="C# (BlinkPath)" %}
1672+
var settings = new BlinkConverterSettings();
1673+
settings.BlinkPath = "/usr/bin/chromium-browser"; // or "/usr/lib/chromium/chromium"
1674+
settings.CommandLineArguments.Add("--no-sandbox");
1675+
settings.CommandLineArguments.Add("--disable-setuid-sandbox");
1676+
settings.CommandLineArguments.Add("--disable-dev-shm-usage");
1677+
{% endhighlight %}
1678+
{% endtabs %}
1679+
1680+
We have attached the modified docker file for your reference <a href="https://www.syncfusion.com/downloads/support/directtrac/general/ze/Dockerfile">Docker file</a>.
1681+
1682+
</td>
1683+
</tr>

0 commit comments

Comments
 (0)