|
1 |
| -FROM debian:11 AS build-env |
2 |
| - |
3 |
| -ARG WORKDIR |
4 |
| -WORKDIR ${WORKDIR} |
5 |
| - |
6 |
| -ENV PATH="${PATH}:/depot_tools" |
7 |
| -ENV CCACHE_DIR="${WORKDIR}/.ccache" |
8 |
| -ENV GIT_CACHE_PATH="${WORKDIR}/.git_cache" |
9 |
| -ENV DEBIAN_FRONTEND=noninteractive |
10 |
| -ENV CHROMIUM_BUILDTOOLS_PATH="${WORKDIR}/electron/src/buildtools" |
11 |
| -ENV CCACHE_DIR="${WORKDIR}/.ccache" |
12 |
| -ENV CCACHE_CPP2=yes |
13 |
| -ENV CCACHE_SLOPPINESS=time_macros |
14 |
| -RUN apt-get update && \ |
15 |
| - apt-get install -y git sudo curl ccache python3 bzip2 xz-utils \ |
16 |
| - binutils binutils-aarch64-linux-gnu binutils-arm-linux-gnueabihf binutils-mips64el-linux-gnuabi64 binutils-mipsel-linux-gnu bison bzip2 cdbs curl dbus-x11 devscripts dpkg-dev elfutils fakeroot flex git-core gperf libasound2 libasound2-dev libatk1.0-0 libatspi2.0-0 libatspi2.0-dev libbluetooth-dev libbrlapi-dev libbrlapi0.8 libbz2-1.0 libbz2-dev libc6 libc6-dev libcairo2 libcairo2-dev libcap-dev libcap2 libcups2 libcups2-dev libcurl4-gnutls-dev libdrm-dev libdrm2 libegl1 libelf-dev libevdev-dev libevdev2 libexpat1 libffi-dev libffi7 libfontconfig1 libfreetype6 libgbm-dev libgbm1 libgl1 libglib2.0-0 libglib2.0-dev libglu1-mesa-dev libgtk-3-0 libgtk-3-dev libinput-dev libinput10 libjpeg-dev libkrb5-dev libnspr4 libnspr4-dev libnss3 libnss3-dev libpam0g libpam0g-dev libpango-1.0-0 libpangocairo-1.0-0 libpci-dev libpci3 libpcre3 libpixman-1-0 libpng16-16 libpulse-dev libpulse0 libsctp-dev libspeechd-dev libspeechd2 libsqlite3-0 libsqlite3-dev libssl-dev libstdc++6 libudev-dev libudev1 libuuid1 libva-dev libvulkan-dev libvulkan1 libwayland-egl1 libwayland-egl1-mesa libwww-perl libx11-6 libx11-xcb1 libxau6 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxinerama1 libxkbcommon-dev libxrandr2 libxrender1 libxshmfence-dev libxslt1-dev libxss-dev libxt-dev libxtst-dev libxtst6 locales mesa-common-dev openbox p7zip patch perl pkg-config rpm ruby subversion uuid-dev wdiff x11-utils xcompmgr xz-utils zip zlib1g zstd && \ |
17 |
| - curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \ |
18 |
| - apt-get install -y nodejs && \ |
19 |
| - git clone --depth 1 --single-branch https://chromium.googlesource.com/chromium/tools/depot_tools.git /depot_tools && \ |
20 |
| - ccache --max-size=256G |
21 |
| - |
22 |
| -# Release binaries |
23 |
| -# ================ |
24 |
| -FROM --platform=$BUILDPLATFORM debian:11 AS carbonyl-binaries |
25 |
| - |
26 |
| -RUN apt-get update && apt-get install -y unzip |
| 1 | +FROM debian:bullseye-slim |
| 2 | + |
| 3 | +RUN groupadd -r carbonyl && useradd -r -g carbonyl carbonyl && \ |
| 4 | + apt-get update && \ |
| 5 | + apt-get install -y \ |
| 6 | + libasound2 libatk-bridge2.0-0 libatk1.0-0 libatomic1 libatspi2.0-0 \ |
| 7 | + libbrotli1 libc6 libcairo2 libcups2 libdbus-1-3 libdouble-conversion3 \ |
| 8 | + libdrm2 libevent-2.1-7 libexpat1 libflac8 libfontconfig1 libfreetype6 \ |
| 9 | + libgbm1 libgcc-s1 libglib2.0-0 libjpeg62-turbo libjsoncpp24 liblcms2-2 \ |
| 10 | + libminizip1 libnspr4 libnss3 libopenjp2-7 libopus0 libpango-1.0-0 \ |
| 11 | + libpng16-16 libpulse0 libre2-9 libsnappy1v5 libstdc++6 libwebp6 \ |
| 12 | + libwebpdemux2 libwebpmux3 libwoff1 libx11-6 libxcb1 libxcomposite1 \ |
| 13 | + libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxml2 libxnvctrl0 \ |
| 14 | + libxrandr2 libxslt1.1 zlib1g libgtk-3-0 && \ |
| 15 | + rm -rf /var/lib/apt/lists/* |
| 16 | + |
| 17 | +USER carbonyl |
27 | 18 |
|
28 | 19 | ARG TARGETARCH
|
29 |
| -COPY electron/src/out/release-$TARGETARCH/dist.zip /runtime.zip |
30 |
| -RUN unzip /runtime.zip -d /runtime |
31 |
| - |
32 |
| -# TypeScript build |
33 |
| -# ================ |
34 |
| -FROM --platform=$BUILDPLATFORM node:18 AS carbonyl-js |
35 |
| - |
36 |
| -WORKDIR /app |
37 |
| -COPY package.json yarn.lock /app/ |
38 |
| -RUN yarn |
39 |
| - |
40 |
| -COPY tsconfig.json /app/ |
41 |
| -COPY src /app/src |
42 |
| -RUN yarn tsc -b |
43 |
| - |
44 |
| -# Main image |
45 |
| -# ========== |
46 |
| -FROM node:18 |
47 |
| - |
48 |
| -RUN apt-get update && \ |
49 |
| - apt-get install --yes \ |
50 |
| - libglib2.0-0 libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libgtk-3-0 libgbm1 libasound2 \ |
51 |
| - xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps \ |
52 |
| - fonts-arphic-ukai fonts-arphic-uming fonts-ipafont-mincho fonts-ipafont-gothic fonts-unfonts-core fonts-noto-core |
53 |
| - |
54 |
| -WORKDIR /app |
55 |
| -COPY package.json yarn.lock /app/ |
56 |
| -RUN yarn --production |
57 |
| - |
58 |
| -COPY --from=carbonyl-js /app/build /app/build |
59 |
| -COPY --from=carbonyl-binaries /runtime /app/build/runtime |
60 |
| -COPY /scripts/docker-entrypoint.sh /app/scripts/docker-entrypoint.sh |
61 |
| - |
62 |
| -ENTRYPOINT ["/app/scripts/docker-entrypoint.sh"] |
| 20 | +COPY build/browser/${TARGETARCH:-amd64} /carbonyl |
63 | 21 |
|
| 22 | +ENTRYPOINT ["/carbonyl/carbonyl", "--no-sandbox", "--disable-dev-shm-usage"] |
0 commit comments