blob: 32c348fcad44868c6ac365f332b0a9561ba0c0ee [file] [log] [blame]
Roman Stratiienko32957192022-12-15 10:12:31 +02001FROM ubuntu:22.10
2
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 \
10 llvm make python3 python3-pip wget sudo rsync lld pkg-config ninja-build && \
Roman Stratiienko32957192022-12-15 10:12:31 +020011 pip3 install mako meson jinja2 ply pyyaml
12
13ENV RUN_USER user
14ENV RUN_UID 1000
15
16ENV USER_HOME /home/${RUN_USER}
17
18RUN mkdir -pv ${USER_HOME}
19# Create new user
20RUN 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
28RUN 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
33RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> \
34/etc/sudoers
35
36# Pass control to a newly created user
37USER ${RUN_USER}
38
Roman Stratiienko2bf68c32022-12-16 12:57:27 +020039# Install aospless package (produced by GloDroid/aospext)
40RUN 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 Stratiienko32957192022-12-15 10:12:31 +020046# Create project path
47RUN mkdir -pv ${USER_HOME}/drm_hwcomposer
48WORKDIR ${USER_HOME}/drm_hwcomposer
49
50RUN git config --global user.name "FIRST_NAME LAST_NAME" && git config --global user.email "MY_NAME@example.com"
51
52CMD [ "/bin/bash" ]