Roman Stratiienko | 3295719 | 2022-12-15 10:12:31 +0200 | [diff] [blame] | 1 | FROM ubuntu:22.10 |
| 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 | 2bf68c3 | 2022-12-16 12:57:27 +0200 | [diff] [blame^] | 9 | apt-get install -y clang-15 clang-tidy-15 clang-format-15 git libdrm-dev blueprint-tools libgtest-dev clang \ |
| 10 | llvm make python3 python3-pip wget sudo rsync lld pkg-config ninja-build && \ |
Roman Stratiienko | 3295719 | 2022-12-15 10:12:31 +0200 | [diff] [blame] | 11 | pip3 install mako meson jinja2 ply pyyaml |
| 12 | |
| 13 | ENV RUN_USER user |
| 14 | ENV RUN_UID 1000 |
| 15 | |
| 16 | ENV USER_HOME /home/${RUN_USER} |
| 17 | |
| 18 | RUN mkdir -pv ${USER_HOME} |
| 19 | # Create new user |
| 20 | RUN adduser \ |
| 21 | --gecos 'Build User' \ |
| 22 | --shell '/usr/bin/bash' \ |
| 23 | --uid ${RUN_UID} \ |
| 24 | --disabled-login \ |
| 25 | --disabled-password ${RUN_USER} \ |
| 26 | && adduser ${RUN_USER} sudo |
| 27 | |
| 28 | RUN chown -R ${RUN_USER}:${RUN_USER} ${USER_HOME} && chmod -R 775 ${USER_HOME} |
| 29 | |
| 30 | # Ensure sudo group users are not |
| 31 | # asked for a password when using |
| 32 | # sudo command by ammending sudoers file |
| 33 | RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> \ |
| 34 | /etc/sudoers |
| 35 | |
| 36 | # Pass control to a newly created user |
| 37 | USER ${RUN_USER} |
| 38 | |
Roman Stratiienko | 2bf68c3 | 2022-12-16 12:57:27 +0200 | [diff] [blame^] | 39 | # Install aospless package (produced by GloDroid/aospext) |
| 40 | RUN wget -P ${USER_HOME} https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/uploads/28ef9379b1a0ec1ee19a17825b0f3f3f/aospless_drm_hwcomposer_arm64.tar.xz && \ |
| 41 | cd ${USER_HOME} && \ |
| 42 | (echo 96b2148d04c50cf36d4151ae022e665764b8ca3317712e9467a433b62c545a43 aospless_drm_hwcomposer_arm64.tar.xz | sha256sum --check) && \ |
| 43 | tar xf aospless_drm_hwcomposer_arm64.tar.xz && \ |
| 44 | rm -r ${USER_HOME}/aospless/src && ln -s ../drm_hwcomposer/ ${USER_HOME}/aospless/src |
| 45 | |
Roman Stratiienko | 3295719 | 2022-12-15 10:12:31 +0200 | [diff] [blame] | 46 | # Create project path |
| 47 | RUN mkdir -pv ${USER_HOME}/drm_hwcomposer |
| 48 | WORKDIR ${USER_HOME}/drm_hwcomposer |
| 49 | |
| 50 | RUN git config --global user.name "FIRST_NAME LAST_NAME" && git config --global user.email "MY_NAME@example.com" |
| 51 | |
| 52 | CMD [ "/bin/bash" ] |