|
1 | | -FROM ubuntu:20.04 |
| 1 | +# ================================= |
| 2 | +# Build and test environment for CI |
| 3 | +# ================================= |
| 4 | + |
| 5 | +FROM ubuntu:20.04 as cpp-docker-ci |
2 | 6 |
|
3 | 7 | ARG DEBIAN_FRONTEND=noninteractive |
4 | 8 |
|
5 | 9 | RUN apt-get update && apt-get -y dist-upgrade && apt-get -y install --fix-missing \ |
6 | 10 | binutils \ |
7 | 11 | build-essential \ |
8 | 12 | bzip2 \ |
9 | | - ccache \ |
10 | 13 | clang-format \ |
11 | 14 | cmake \ |
12 | | - curl \ |
13 | | - gdb \ |
14 | | - gdbserver \ |
15 | | - git \ |
16 | | - locales \ |
17 | 15 | python \ |
18 | 16 | python3-pip \ |
19 | | - rsync \ |
20 | | - ruby \ |
21 | | - shellcheck \ |
22 | 17 | ssh \ |
23 | 18 | sudo \ |
24 | 19 | tar \ |
| 20 | + && apt-get autoremove -y && apt-get clean |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +# ================================= |
| 28 | +# DEV environment for local machine |
| 29 | +# ================================= |
| 30 | + |
| 31 | +FROM cpp-docker-ci as cpp-docker-dev |
| 32 | + |
| 33 | +ARG DEV_USER=dev |
| 34 | + |
| 35 | +RUN apt-get -y install --fix-missing \ |
| 36 | + ccache \ |
| 37 | + curl \ |
| 38 | + shellcheck \ |
25 | 39 | valgrind \ |
26 | 40 | vim \ |
27 | 41 | && apt-get autoremove -y && apt-get clean |
28 | 42 |
|
29 | | -RUN locale-gen en_US.utf8 en_GB.utf8 de_DE.utf8 && update-locale |
30 | | - |
31 | | -RUN groupadd -g 1000 dev && \ |
32 | | - useradd -m -u 1000 -g 1000 -d /home/dev -s /bin/bash dev && \ |
33 | | - usermod -a -G adm,cdrom,sudo,dip,plugdev dev && \ |
34 | | - echo 'dev:dev' | chpasswd && \ |
35 | | - echo "dev ALL=(ALL:ALL) ALL" >> /etc/sudoers |
| 43 | +# Dev user for inside the container |
| 44 | +RUN groupadd -g 1000 ${DEV_USER} && \ |
| 45 | + useradd -m -u 1000 -g 1000 -d /home/${DEV_USER} -s /bin/bash ${DEV_USER} && \ |
| 46 | + usermod -a -G adm,cdrom,sudo,dip,plugdev ${DEV_USER} && \ |
| 47 | + echo "${DEV_USER}:${DEV_USER}" | chpasswd && \ |
| 48 | + echo "${DEV_USER} ALL=(ALL:ALL) ALL" >> /etc/sudoers |
36 | 49 |
|
37 | 50 | # fix "Missing privilege separation directory" error in SSHD |
38 | 51 | # see: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/45234 |
39 | 52 | RUN mkdir /var/run/sshd && chmod 0755 /var/run/sshd |
40 | 53 |
|
41 | 54 | COPY ccache.conf /etc/. |
42 | 55 |
|
43 | | -USER dev |
44 | | -WORKDIR /home/dev |
45 | | - |
46 | | -RUN sed -i 's/\\h/docker/;s/01;32m/01;33m/' /home/dev/.bashrc |
| 56 | +USER ${DEV_USER} |
| 57 | +WORKDIR /home/${DEV_USER} |
47 | 58 |
|
48 | | -RUN mkdir /home/dev/git |
| 59 | +RUN sed -i 's/\\h/docker/;s/01;32m/01;33m/' /home/${DEV_USER}/.bashrc \ |
| 60 | + && mkdir /home/${DEV_USER}/git |
0 commit comments