22# Build and test environment for CI
33# =================================
44
5- FROM ubuntu:22.10 as cpp-docker-ci
5+ FROM ubuntu:22.10 as cpp-docker-common
66
77ARG DEBIAN_FRONTEND=noninteractive
8+ ENV PATH="${PATH}:/cmake-3.26.3-linux-x86_64/bin/:"
89
910RUN apt-get update && apt-get -y dist-upgrade && apt-get -y install --fix-missing \
11+ apturl \
1012 binutils \
1113 build-essential \
1214 bzip2 \
13- cmake \
1415 cppcheck \
16+ ccache \
17+ doxygen \
18+ graphviz \
1519 lsb-release \
1620 ninja-build \
1721 python3 \
1822 python3-pip \
23+ shellcheck \
1924 ssh \
2025 software-properties-common \
2126 sudo \
2227 tar \
28+ valgrind \
2329 wget
30+ RUN wget https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3-linux-x86_64.sh \
31+ && chmod +x cmake-3.26.3-linux-x86_64.sh \
32+ && ./cmake-3.26.3-linux-x86_64.sh --include-subdir --skip-license \
33+ && rm cmake-3.26.3-linux-x86_64.sh
2434RUN bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
25- RUN apt-get -y install clang-format clang-tidy
35+ RUN apt-get -y install clang-format clang-tidy clang-15
2636RUN apt-get autoremove -y && apt-get clean
27- RUN pip install --user conan==1.59 Jinja2 jsonschema setuptools
28-
2937
3038
3139# =================================
3240# DEV environment for local machine
3341# =================================
3442
35- FROM cpp-docker-ci as cpp-docker-dev
43+ FROM cpp-docker-common as cpp-docker-dev
3644
3745ARG DEV_USER=dev
46+ ENV PATH="${PATH}:/home/${DEV_USER}/.local/bin/"
3847
39- RUN apt-get -y install --fix-missing \
40- ccache \
41- curl \
42- doxygen \
43- graphviz \
44- shellcheck \
45- valgrind \
46- vim \
47- && apt-get autoremove -y && apt-get clean
48+ RUN apt-get -y install --fix-missing vim \
49+ && apt-get autoremove -y && apt-get clean
4850
4951# Dev user for inside the container
5052RUN groupadd -g 1000 ${DEV_USER} && \
@@ -64,3 +66,23 @@ WORKDIR /home/${DEV_USER}
6466
6567RUN sed -i 's/\\ h/docker/;s/01;32m/01;33m/' /home/${DEV_USER}/.bashrc \
6668 && mkdir /home/${DEV_USER}/git
69+
70+ RUN pip install --user conan==1.59
71+
72+
73+ FROM cpp-docker-common as cpp-docker-ci
74+
75+ ARG CI_USER=ci
76+ ENV PATH="${PATH}:/home/${CI_USER}/.local/bin/"
77+
78+ # Dev user for inside the container
79+ RUN groupadd -g 1000 ${CI_USER} && \
80+ useradd -m -u 1000 -g 1000 -d /home/${CI_USER} -s /bin/bash ${CI_USER} && \
81+ usermod -a -G adm,cdrom,sudo,dip,plugdev ${CI_USER} && \
82+ echo "${CI_USER}:${CI_USER}" | chpasswd && \
83+ echo "${CI_USER} ALL=(ALL:ALL) ALL" >> /etc/sudoers
84+
85+ COPY ccache.conf /etc/.
86+ USER ${CI_USER}
87+ RUN pip install conan==1.59
88+ WORKDIR /home/${CI_USER}
0 commit comments