/ linux-fresh-arm64 / Dockerfile
Dockerfile
 1  FROM ubuntu:22.04
 2  LABEL maintainer="yuzu"
 3  
 4  ENV CMAKE_VER=3.22.6
 5  ENV DEBIAN_FRONTEND=noninteractive
 6  ENV GCC_VER=11.2.0
 7  ENV QT_PKG_VER=515
 8  ENV QT_VER=5.15.3
 9  ENV UBUNTU_VER=jammy
10  
11  # Create a user account yuzu (UID 1027) that the container will run as
12  RUN useradd -m -u 1027 -s /bin/bash yuzu && \
13      apt-get update && apt-get -y full-upgrade && \
14      apt-get install --no-install-recommends -y \
15      appstream \
16      autoconf \
17      automake \
18      build-essential \
19      ccache \
20      desktop-file-utils \
21      file \
22      gpg-agent \
23      libfile-mimeinfo-perl \
24      libglu1-mesa-dev \
25      libpulse-dev \
26      libssl-dev \
27      libtool \
28      libudev-dev \
29      libva-dev \
30      libwayland-dev \
31      libzip-dev \
32      mesa-common-dev \
33      nasm \
34      ninja-build \
35      patchelf \
36      pkg-config \
37      software-properties-common \
38      unzip \
39      wget \
40      zlib1g-dev \
41      zsync \
42  # vcpkg requirements
43      curl \
44      zip \
45      && \
46      apt-get update -y && \
47      apt-get install --no-install-recommends -y \
48      cmake \
49      git \
50      glslang-dev \
51      glslang-tools \
52      libhidapi-dev \
53      qtbase5-dev \
54      qtbase5-private-dev \
55      qttools5-dev \
56      qtwayland5 \
57      qtmultimedia5-dev \
58      qtwebengine5-dev && \
59      dpkg-reconfigure ccache && \
60      apt-get clean autoclean && \
61      apt-get autoremove --yes && \
62      rm -rf /var/lib/apt /var/lib/dpkg /var/lib/cache /var/lib/log
63  
64  # Tell CMake to use vcpkg when looking for packages
65  ENV VCPKG_TOOLCHAIN_FILE=/home/yuzu/vcpkg/scripts/buildsystems/vcpkg.cmake
66  ENV VCPKG_FORCE_SYSTEM_BINARIES=1
67  
68  USER 1027
69  # Install vcpkg and required dependencies for yuzu
70  RUN cd /home/yuzu &&\
71      git clone --branch 2022.08.15 --depth 1 https://github.com/Microsoft/vcpkg.git &&\
72      cd vcpkg &&\
73      ./bootstrap-vcpkg.sh &&\
74      ./vcpkg install \
75          boost-algorithm \
76          boost-asio \
77          boost-bind \
78          boost-config \
79          boost-container \
80          boost-context \
81          boost-crc \
82          boost-functional \
83          boost-icl \
84          boost-intrusive \
85          boost-mpl \
86          boost-process \
87          boost-range \
88          boost-spirit \
89          boost-test \
90          boost-timer \
91          boost-variant \
92          fmt \
93          lz4 \
94          nlohmann-json \
95          zlib \
96          zstd