Skip to content

Commit e287f56

Browse files
committed
provide two docker layers (CI and dev)
1 parent 87c8419 commit e287f56

7 files changed

Lines changed: 47 additions & 59 deletions

File tree

docker/Dockerfile

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,60 @@
1-
FROM ubuntu:20.04
1+
# =================================
2+
# Build and test environment for CI
3+
# =================================
4+
5+
FROM ubuntu:20.04 as cpp-docker-ci
26

37
ARG DEBIAN_FRONTEND=noninteractive
48

59
RUN apt-get update && apt-get -y dist-upgrade && apt-get -y install --fix-missing \
610
binutils \
711
build-essential \
812
bzip2 \
9-
ccache \
1013
clang-format \
1114
cmake \
12-
curl \
13-
gdb \
14-
gdbserver \
15-
git \
16-
locales \
1715
python \
1816
python3-pip \
19-
rsync \
20-
ruby \
21-
shellcheck \
2217
ssh \
2318
sudo \
2419
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 \
2539
valgrind \
2640
vim \
2741
&& apt-get autoremove -y && apt-get clean
2842

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
3649

3750
# fix "Missing privilege separation directory" error in SSHD
3851
# see: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/45234
3952
RUN mkdir /var/run/sshd && chmod 0755 /var/run/sshd
4053

4154
COPY ccache.conf /etc/.
4255

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}
4758

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

docker/README.md

Lines changed: 0 additions & 32 deletions
This file was deleted.

docker/build-ci-image.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash -e
2+
3+
DOCKER_BUILDKIT=1 docker -l debug build \
4+
--target cpp-docker-ci \
5+
-t cppcienv:latest .

docker/build-dev-image.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash -e
2+
3+
DOCKER_BUILDKIT=1 docker -l debug build \
4+
--target cpp-docker-dev \
5+
--build-arg DEV_USER=dev \
6+
-t cppdevenv:latest .

docker/build-image.sh

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ if [ $# -ne 0 ]; then
1010
docker exec -i -t -u dev:dev "${CONTAINER}" bash -c "if [ -d \"${WORKDIR}\" ]; then cd ${WORKDIR}; fi; $*"
1111
else
1212
# (The shell is interactive if bash is called without arguments :)
13-
docker exec -i -t -u dev:dev "${CONTAINER}" bash
13+
docker exec -i -t -u dev:dev "${CONTAINER}" bash -c "if [ -d \"${WORKDIR}\" ]; then cd ${WORKDIR}; fi; bash"
1414
fi

docker/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ services:
88
cap_add:
99
- SYS_PTRACE
1010
container_name: cpp_docker_env
11-
image: cppenv:latest
11+
image: cppdevenv:latest
1212
environment:
1313
- TERM=xterm-256color # For a colored Terminal
1414
- SSH_AUTH_SOCK=/ssh-agent

0 commit comments

Comments
 (0)