Roman Stratiienko | 57ba08a | 2024-10-17 01:48:10 +0300 | [diff] [blame] | 1 | FROM ubuntu:24.10 |
Roman Stratiienko | 3295719 | 2022-12-15 10:12:31 +0200 | [diff] [blame] | 2 | |
| 3 | ENV DEBIAN_FRONTEND=noninteractive |
| 4 | |
| 5 | ENV PATH="/home/user/bin:${PATH}" |
| 6 | |
| 7 | # Taking into account layer structure, everything should be done within one layer. |
| 8 | RUN apt-get update && apt-get upgrade -y && \ |
Roman Stratiienko | 57ba08a | 2024-10-17 01:48:10 +0300 | [diff] [blame] | 9 | apt-get install -y clang-19 clang-tidy-19 clang-format-19 git libdrm-dev blueprint-tools libgtest-dev clang \ |
Roman Stratiienko | 87b716c | 2023-09-20 00:16:08 +0300 | [diff] [blame] | 10 | llvm make python3 wget sudo rsync lld pkg-config ninja-build meson \ |
| 11 | python3-mako python3-jinja2 python3-ply python3-yaml |
Roman Stratiienko | 3295719 | 2022-12-15 10:12:31 +0200 | [diff] [blame] | 12 | |
| 13 | ENV RUN_USER user |
Roman Stratiienko | 492739c | 2023-10-14 16:28:55 +0300 | [diff] [blame] | 14 | ENV RUN_UID 1000 |
Roman Stratiienko | 3295719 | 2022-12-15 10:12:31 +0200 | [diff] [blame] | 15 | |
| 16 | ENV USER_HOME /home/${RUN_USER} |
| 17 | |
| 18 | RUN mkdir -pv ${USER_HOME} |
Roman Stratiienko | 492739c | 2023-10-14 16:28:55 +0300 | [diff] [blame] | 19 | |
| 20 | # Delete default user |
| 21 | RUN userdel -r ubuntu |
| 22 | |
Roman Stratiienko | 3295719 | 2022-12-15 10:12:31 +0200 | [diff] [blame] | 23 | # Create new user |
| 24 | RUN adduser \ |
| 25 | --gecos 'Build User' \ |
| 26 | --shell '/usr/bin/bash' \ |
| 27 | --uid ${RUN_UID} \ |
| 28 | --disabled-login \ |
| 29 | --disabled-password ${RUN_USER} \ |
| 30 | && adduser ${RUN_USER} sudo |
| 31 | |
| 32 | RUN chown -R ${RUN_USER}:${RUN_USER} ${USER_HOME} && chmod -R 775 ${USER_HOME} |
| 33 | |
| 34 | # Ensure sudo group users are not |
| 35 | # asked for a password when using |
| 36 | # sudo command by ammending sudoers file |
| 37 | RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> \ |
| 38 | /etc/sudoers |
| 39 | |
| 40 | # Pass control to a newly created user |
| 41 | USER ${RUN_USER} |
| 42 | |
Roman Stratiienko | 2bf68c3 | 2022-12-16 12:57:27 +0200 | [diff] [blame] | 43 | # Install aospless package (produced by GloDroid/aospext) |
Roman Stratiienko | 6e5c82e | 2024-10-16 23:05:25 +0300 | [diff] [blame] | 44 | RUN wget -P ${USER_HOME} https://gitlab.freedesktop.org/-/project/5/uploads/70643bd1c4d419015b9930b7aadc9cfd/aospless_drm_hwcomposer_arm64.tar.xz && \ |
Roman Stratiienko | 2bf68c3 | 2022-12-16 12:57:27 +0200 | [diff] [blame] | 45 | cd ${USER_HOME} && \ |
Dennis Tsiang | 33f0ece | 2023-11-29 12:45:04 +0000 | [diff] [blame] | 46 | sha256sum aospless_drm_hwcomposer_arm64.tar.xz && \ |
Roman Stratiienko | 6e5c82e | 2024-10-16 23:05:25 +0300 | [diff] [blame] | 47 | (echo 640e0d0e04761c804db69f880e0c0957699babdbe82c72c507177b860d878569 aospless_drm_hwcomposer_arm64.tar.xz | sha256sum --check) && \ |
Drew Davenport | 7f1761b | 2024-08-20 10:09:43 -0600 | [diff] [blame] | 48 | tar xf aospless_drm_hwcomposer_arm64.tar.xz && ln -s ../drm_hwcomposer/ ${USER_HOME}/aospless/src |
Roman Stratiienko | 2bf68c3 | 2022-12-16 12:57:27 +0200 | [diff] [blame] | 49 | |
Roman Stratiienko | 3295719 | 2022-12-15 10:12:31 +0200 | [diff] [blame] | 50 | # Create project path |
| 51 | RUN mkdir -pv ${USER_HOME}/drm_hwcomposer |
| 52 | WORKDIR ${USER_HOME}/drm_hwcomposer |
| 53 | |
| 54 | RUN git config --global user.name "FIRST_NAME LAST_NAME" && git config --global user.email "MY_NAME@example.com" |
| 55 | |
| 56 | CMD [ "/bin/bash" ] |