blob: a038cd70f0689583377b4c9eced96ea30ab3eec2 [file] [log] [blame]
Roman Stratiienko87b716c2023-09-20 00:16:08 +03001FROM ubuntu:23.04
Roman Stratiienko32957192022-12-15 10:12:31 +02002
3ENV DEBIAN_FRONTEND=noninteractive
4
5ENV PATH="/home/user/bin:${PATH}"
6
7# Taking into account layer structure, everything should be done within one layer.
8RUN apt-get update && apt-get upgrade -y && \
Roman Stratiienko2bf68c32022-12-16 12:57:27 +02009 apt-get install -y clang-15 clang-tidy-15 clang-format-15 git libdrm-dev blueprint-tools libgtest-dev clang \
Roman Stratiienko87b716c2023-09-20 00:16:08 +030010 llvm make python3 wget sudo rsync lld pkg-config ninja-build meson \
11 python3-mako python3-jinja2 python3-ply python3-yaml
Roman Stratiienko32957192022-12-15 10:12:31 +020012
13ENV RUN_USER user
Roman Stratiienko492739c2023-10-14 16:28:55 +030014ENV RUN_UID 1000
Roman Stratiienko32957192022-12-15 10:12:31 +020015
16ENV USER_HOME /home/${RUN_USER}
17
18RUN mkdir -pv ${USER_HOME}
Roman Stratiienko492739c2023-10-14 16:28:55 +030019
20# Delete default user
21RUN userdel -r ubuntu
22
Roman Stratiienko32957192022-12-15 10:12:31 +020023# Create new user
24RUN 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
32RUN 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
37RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> \
38/etc/sudoers
39
40# Pass control to a newly created user
41USER ${RUN_USER}
42
Roman Stratiienko2bf68c32022-12-16 12:57:27 +020043# Install aospless package (produced by GloDroid/aospext)
Dennis Tsiang33f0ece2023-11-29 12:45:04 +000044RUN wget -P ${USER_HOME} https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/uploads/af611363cabab0e9557c53b844197228/aospless_drm_hwcomposer_arm64.tar.xz && \
Roman Stratiienko2bf68c32022-12-16 12:57:27 +020045 cd ${USER_HOME} && \
Dennis Tsiang33f0ece2023-11-29 12:45:04 +000046 sha256sum aospless_drm_hwcomposer_arm64.tar.xz && \
47 (echo 07b70f3172acf55dafb5882fab0c6c618854e3a9ff7496fa8b1e5fd2ee68cf0a aospless_drm_hwcomposer_arm64.tar.xz | sha256sum --check) && \
Roman Stratiienko2bf68c32022-12-16 12:57:27 +020048 tar xf aospless_drm_hwcomposer_arm64.tar.xz && \
49 rm -r ${USER_HOME}/aospless/src && ln -s ../drm_hwcomposer/ ${USER_HOME}/aospless/src
50
Roman Stratiienko32957192022-12-15 10:12:31 +020051# Create project path
52RUN mkdir -pv ${USER_HOME}/drm_hwcomposer
53WORKDIR ${USER_HOME}/drm_hwcomposer
54
55RUN git config --global user.name "FIRST_NAME LAST_NAME" && git config --global user.email "MY_NAME@example.com"
56
57CMD [ "/bin/bash" ]