Files
netris-nestri/base.Dockerfile
dependabot[bot] 19e2f62603 ⚒️ build(deps): Bump docker/build-push-action from 5 to 6 (#86)
Bumps
[docker/build-push-action](https://github.com/docker/build-push-action)
from 5 to 6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/build-push-action/releases">docker/build-push-action's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<ul>
<li>Export build record and generate <a
href="https://docs.docker.com/build/ci/github-actions/build-summary/">build
summary</a> by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/build-push-action/pull/1120">docker/build-push-action#1120</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.24.0 to 0.26.0 in
<a
href="https://redirect.github.com/docker/build-push-action/pull/1132">docker/build-push-action#1132</a>
<a
href="https://redirect.github.com/docker/build-push-action/pull/1136">docker/build-push-action#1136</a>
<a
href="https://redirect.github.com/docker/build-push-action/pull/1138">docker/build-push-action#1138</a></li>
<li>Bump braces from 3.0.2 to 3.0.3 in <a
href="https://redirect.github.com/docker/build-push-action/pull/1137">docker/build-push-action#1137</a></li>
</ul>
<blockquote>
<p>[!NOTE]
This major release adds support for generating <a
href="https://docs.docker.com/build/ci/github-actions/build-summary/">Build
summary</a> and exporting build record for your build. You can disable
this feature by setting <a
href="https://docs.docker.com/build/ci/github-actions/build-summary/#disable-job-summary">
<code>DOCKER_BUILD_NO_SUMMARY: true</code> environment variable in your
workflow</a>.</p>
</blockquote>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/build-push-action/compare/v5.4.0...v6.0.0">https://github.com/docker/build-push-action/compare/v5.4.0...v6.0.0</a></p>
<h2>v5.4.0</h2>
<ul>
<li>Show builder information before building by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/build-push-action/pull/1128">docker/build-push-action#1128</a></li>
<li>Handle attestations correctly with provenance and sbom inputs by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/build-push-action/pull/1086">docker/build-push-action#1086</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.19.0 to 0.24.0 in
<a
href="https://redirect.github.com/docker/build-push-action/pull/1088">docker/build-push-action#1088</a>
<a
href="https://redirect.github.com/docker/build-push-action/pull/1105">docker/build-push-action#1105</a>
<a
href="https://redirect.github.com/docker/build-push-action/pull/1121">docker/build-push-action#1121</a>
<a
href="https://redirect.github.com/docker/build-push-action/pull/1127">docker/build-push-action#1127</a></li>
<li>Bump undici from 5.28.3 to 5.28.4 in <a
href="https://redirect.github.com/docker/build-push-action/pull/1090">docker/build-push-action#1090</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/build-push-action/compare/v5.3.0...v5.4.0">https://github.com/docker/build-push-action/compare/v5.3.0...v5.4.0</a></p>
<h2>v5.3.0</h2>
<ul>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.18.0 to 0.19.0 in
<a
href="https://redirect.github.com/docker/build-push-action/pull/1080">docker/build-push-action#1080</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/build-push-action/compare/v5.2.0...v5.3.0">https://github.com/docker/build-push-action/compare/v5.2.0...v5.3.0</a></p>
<h2>v5.2.0</h2>
<ul>
<li>Disable quotes detection for <code>outputs</code> input by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/build-push-action/pull/1074">docker/build-push-action#1074</a></li>
<li>Warn about ignored inputs by <a
href="https://github.com/favonia"><code>@​favonia</code></a> in <a
href="https://redirect.github.com/docker/build-push-action/pull/1019">docker/build-push-action#1019</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.14.0 to 0.18.0 in
<a
href="https://redirect.github.com/docker/build-push-action/pull/1070">docker/build-push-action#1070</a></li>
<li>Bump undici from 5.26.3 to 5.28.3 in <a
href="https://redirect.github.com/docker/build-push-action/pull/1057">docker/build-push-action#1057</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/build-push-action/compare/v5.1.0...v5.2.0">https://github.com/docker/build-push-action/compare/v5.1.0...v5.2.0</a></p>
<h2>v5.1.0</h2>
<ul>
<li>Add <code>annotations</code> input by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/build-push-action/pull/992">docker/build-push-action#992</a></li>
<li>Add <code>secret-envs</code> input by <a
href="https://github.com/elias-lundgren"><code>@​elias-lundgren</code></a>
in <a
href="https://redirect.github.com/docker/build-push-action/pull/980">docker/build-push-action#980</a></li>
<li>Bump <code>@​babel/traverse</code> from 7.17.3 to 7.23.2 in <a
href="https://redirect.github.com/docker/build-push-action/pull/991">docker/build-push-action#991</a></li>
<li>Bump <code>@​docker/actions-toolkit</code> from 0.13.0-rc.1 to
0.14.0 in <a
href="https://redirect.github.com/docker/build-push-action/pull/990">docker/build-push-action#990</a>
<a
href="https://redirect.github.com/docker/build-push-action/pull/1006">docker/build-push-action#1006</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/build-push-action/compare/v5.0.0...v5.1.0">https://github.com/docker/build-push-action/compare/v5.0.0...v5.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="c382f710d3"><code>c382f71</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/build-push-action/issues/1120">#1120</a>
from crazy-max/build-summary</li>
<li><a
href="5a5b70d974"><code>5a5b70d</code></a>
chore: update generated content</li>
<li><a
href="dc24cf9e25"><code>dc24cf9</code></a>
don't generate summary for cloud driver</li>
<li><a
href="667cb22c52"><code>667cb22</code></a>
DOCKER_BUILD_NO_SUMMARY env to disable summary</li>
<li><a
href="d880b1964b"><code>d880b19</code></a>
generate build summary</li>
<li><a
href="e51051ad0b"><code>e51051a</code></a>
export build record and upload artifact</li>
<li><a
href="86c2bd0031"><code>86c2bd0</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/build-push-action/issues/1137">#1137</a>
from docker/dependabot/npm_and_yarn/braces-3.0.3</li>
<li><a
href="268d2b1611"><code>268d2b1</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/build-push-action/issues/1138">#1138</a>
from docker/dependabot/npm_and_yarn/docker/actions-t...</li>
<li><a
href="2b8dc7f529"><code>2b8dc7f</code></a>
chore: update generated content</li>
<li><a
href="840c12be17"><code>840c12b</code></a>
chore(deps): Bump <code>@​docker/actions-toolkit</code> from 0.25.1 to
0.26.0</li>
<li>Additional commits viewable in <a
href="https://github.com/docker/build-push-action/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docker/build-push-action&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wanjohi <71614375+wanjohiryan@users.noreply.github.com>
2024-06-28 03:25:27 +03:00

292 lines
7.6 KiB
Docker

# This builds and updates the screen recorder we use on Netris
# From https://git.dec05eba.com/gpu-screen-recorder
FROM ubuntu:23.10
ENV DEBIAN_FRONTEND=noninteractive \
TIMEZONE=Africa/Nairobi \
XDG_RUNTIME_DIR=/tmp/runtime-ubuntu \
DISPLAY=:0 \
PULSE_SERVER=unix:/run/pulse/native
# WAYLAND_DISPLAY=wayland-0
# Install fundamental packages
RUN apt-get clean \
&& apt-get update \
&& apt-get upgrade -y \
&& apt-get install --no-install-recommends -y \
apt-transport-https \
apt-utils \
build-essential \
ca-certificates \
curl \
gnupg \
locales \
make \
software-properties-common \
wget \
&& rm -rf /var/lib/apt/lists/* \
&& locale-gen en_US.UTF-8
# Set locales
ENV LANG=en_US.UTF-8 \
LANGUAGE=en_US:en \
LC_ALL=en_US.UTF-8
# Install operating system libraries or packages
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get install --no-install-recommends -y \
alsa-base \
alsa-utils \
cups-browsed \
cups-bsd \
cups-common \
cups-filters \
printer-driver-cups-pdf \
file \
bzip2 \
gzip \
xz-utils \
unar \
rar \
unrar \
zip \
unzip \
zstd \
gcc \
git \
jq \
python3 \
python3-cups \
python3-numpy \
ssl-cert \
nano \
vim \
htop \
fakeroot \
fonts-dejavu \
fonts-freefont-ttf \
fonts-hack \
fonts-liberation \
fonts-noto \
fonts-noto-cjk \
fonts-noto-cjk-extra \
fonts-noto-color-emoji \
fonts-noto-extra \
fonts-noto-ui-extra \
fonts-noto-hinted \
fonts-noto-mono \
fonts-noto-unhinted \
fonts-opensymbol \
fonts-symbola \
fonts-ubuntu \
lame \
less \
libavcodec-extra \
libpulse0 \
pulseaudio \
supervisor \
net-tools \
packagekit-tools \
pkg-config \
mesa-utils \
va-driver-all \
va-driver-all:i386 \
i965-va-driver-shaders \
i965-va-driver-shaders:i386 \
intel-media-va-driver-non-free \
intel-media-va-driver-non-free:i386 \
libva2 \
libva2:i386 \
vainfo \
vdpau-driver-all \
vdpau-driver-all:i386 \
vdpauinfo \
mesa-vulkan-drivers \
mesa-vulkan-drivers:i386 \
libvulkan-dev \
libvulkan-dev:i386 \
vulkan-tools \
ocl-icd-libopencl1 \
clinfo \
dbus-user-session \
dbus-x11 \
libdbus-c++-1-0v5 \
xkb-data \
xauth \
xbitmaps \
xdg-user-dirs \
xdg-utils \
xfonts-base \
xfonts-scalable \
xinit \
xsettingsd \
libxrandr-dev \
x11-xkb-utils \
x11-xserver-utils \
x11-utils \
x11-apps \
xserver-xorg-input-all \
xserver-xorg-input-wacom \
xserver-xorg-video-all \
xserver-xorg-video-intel \
xserver-xorg-video-qxl \
# Install OpenGL libraries
libxau6 \
libxau6:i386 \
libxdmcp6 \
libxdmcp6:i386 \
libxcb1 \
libxcb1:i386 \
libxext6 \
libxext6:i386 \
libx11-6 \
libx11-6:i386 \
libxv1 \
libxv1:i386 \
libxtst6 \
libxtst6:i386 \
libglvnd0 \
libglvnd0:i386 \
libgl1 \
libgl1:i386 \
libglx0 \
libglx0:i386 \
libegl1 \
libegl1:i386 \
libgles2 \
libgles2:i386 \
libglu1 \
libglu1:i386 \
libsm6 \
libsm6:i386 \
mesa-utils \
mesa-utils-extra \
xcvt \
&& rm -rf /var/lib/apt/lists/* \
&& echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf \
&& echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf \
# Configure OpenCL manually
&& mkdir -pm755 /etc/OpenCL/vendors \
&& echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd \
# Configure Vulkan manually
&& VULKAN_API_VERSION=$(dpkg -s libvulkan1 | grep -oP 'Version: [0-9|\.]+' | grep -oP '[0-9]+(\.[0-9]+)(\.[0-9]+)') \
&& mkdir -pm755 /etc/vulkan/icd.d/ \
&& echo "{\n\
\"file_format_version\" : \"1.0.0\",\n\
\"ICD\": {\n\
\"library_path\": \"libGLX_nvidia.so.0\",\n\
\"api_version\" : \"${VULKAN_API_VERSION}\"\n\
}\n\
}" > /etc/vulkan/icd.d/nvidia_icd.json \
# Configure EGL manually
&& mkdir -pm755 /usr/share/glvnd/egl_vendor.d/ \
&& echo "{\n\
\"file_format_version\" : \"1.0.0\",\n\
\"ICD\": {\n\
\"library_path\": \"libEGL_nvidia.so.0\"\n\
}\n\
}" > /usr/share/glvnd/egl_vendor.d/10_nvidia.json
# Expose NVIDIA libraries and paths
ENV PATH=/usr/local/nvidia/bin${PATH:+:${PATH}} \
LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}/usr/local/nvidia/lib:/usr/local/nvidia/lib64 \
XDG_SESSION_TYPE=x11 \
# Enable AppImage execution in containers
APPIMAGE_EXTRACT_AND_RUN=1
ENV \
# Make all NVIDIA GPUs visible by default
NVIDIA_VISIBLE_DEVICES=all \
# All NVIDIA driver capabilities should preferably be used, check `NVIDIA_DRIVER_CAPABILITIES` inside the container if things do not work
NVIDIA_DRIVER_CAPABILITIES=all \
# Disable VSYNC for NVIDIA GPUs
__GL_SYNC_TO_VBLANK=0
#Build and install gpu-screen-recorder
RUN apt-get update -y \
&& apt-get install -y \
curl \
unzip \
git \
build-essential \
ninja-build \
gcc \
meson \
cmake \
ccache \
bison \
software-properties-common \
ca-certificates \
equivs \
ca-certificates\
libcap2-bin \
libllvm15 \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libavfilter-dev \
libavdevice-dev \
libswresample-dev \
libswscale-dev \
libx11-dev \
libxcomposite-dev \
libkpipewire-dev \
libxrandr-dev \
libxi-dev \
libxdamage-dev \
libxfixes-dev \
libpulse-dev \
libswresample-dev \
libva-dev \
libcap-dev \
libdrm-dev \
libgl-dev \
libegl-dev \
libwayland-dev \
libnvidia-egl-wayland-dev \
libwayland-egl-backend-dev \
wayland-protocols \
&& rm -rf /var/lib/apt/lists/* \
#Install Nvrtc
&& NVRTC_VERSION="11.0.221" \
&& cd /tmp && curl -fsSL -o nvidia_cuda_nvrtc_linux_x86_64.whl "https://developer.download.nvidia.com/compute/redist/nvidia-cuda-nvrtc/nvidia_cuda_nvrtc-${NVRTC_VERSION}-cp36-cp36m-linux_x86_64.whl" \
&& unzip -joq -d ./nvrtc nvidia_cuda_nvrtc_linux_x86_64.whl && cd nvrtc && chmod 755 libnvrtc* \
&& find . -maxdepth 1 -type f -name "*libnvrtc.so.*" -exec sh -c 'ln -snf $(basename {}) libnvrtc.so' \; \
&& mkdir -p /usr/local/nvidia/lib && mv -f libnvrtc* /usr/local/nvidia/lib \
&& git clone https://repo.dec05eba.com/gpu-screen-recorder && cd gpu-screen-recorder \
&& meson setup build \
&& meson configure --prefix=/usr --buildtype=release -Dsystemd=true -Dstrip=true build \
&& ninja -C build install
# #Try building shadow-cast
# RUN git clone https://github.com/gmbeard/shadow-cast && cd shadow-cast \
# && mkdir ./build && cd ./build \
# && cmake -DCMAKE_CXX_FLAGS="-Wno-error=unused-result" -DCMAKE_C_FLAGS="-Wno-error=unused-result" .. \
# && cmake --build . -- -j$(nproc) \
# && chmod +x ./install-helper.sh \
# && ./install-helper.sh
RUN apt-get update -y; \
apt-get upgrade -y; \
add-apt-repository ppa:savoury1/ffmpeg4 \
add-apt-repository ppa:savoury1/ffmpeg6 \
apt-get update -y; \
apt-get upgrade -y && apt-get dist-upgrade -y; \
apt-get install ffmpeg -y; \
#
# Log the ffmpeg version
ffmpeg -version
# Install Xorg and NVIDIA driver installer dependencies
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
kmod \
libc6-dev \
libc6:i386 \
libpci3 \
libelf-dev \
pkg-config \
xorg \
&& rm -rf /var/lib/apt/lists/*