Skip to content

Commit 1fc3de0

Browse files
committed
updated docker images
1 parent 0c56375 commit 1fc3de0

6 files changed

Lines changed: 72 additions & 31 deletions

File tree

docker/Dockerfile

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,51 @@
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

77
ARG DEBIAN_FRONTEND=noninteractive
8+
ENV PATH="${PATH}:/cmake-3.26.3-linux-x86_64/bin/:"
89

910
RUN 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
2434
RUN 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
2636
RUN 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

3745
ARG 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
5052
RUN groupadd -g 1000 ${DEV_USER} && \
@@ -64,3 +66,23 @@ WORKDIR /home/${DEV_USER}
6466

6567
RUN 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}

docker/build-ci-image.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
DOCKER_BUILDKIT=1 docker -l debug build \
44
--target cpp-docker-ci \
5-
-t cppcienv:latest .
5+
-t cpp_ci_env:latest .

docker/build-dev-image.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
DOCKER_BUILDKIT=1 docker -l debug build \
44
--target cpp-docker-dev \
55
--build-arg DEV_USER=dev \
6-
-t cppdevenv:latest .
6+
-t cpp_dev_env:latest .

docker/cppdev-docker

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
#! /bin/bash
2-
CONTAINER=cpp_docker_env
3-
WORKDIR=$(pwd)
4-
5-
if ! /usr/bin/docker ps | grep "${CONTAINER}" > /dev/null; then
6-
docker-compose up -d
7-
fi
2+
CONTAINER=cpp_dev_env
3+
WORKDIR=$(pwd)/../
84

95
if [ $# -ne 0 ]; then
10-
docker exec -i -t -u dev:dev "${CONTAINER}" bash -c "if [ -d \"${WORKDIR}\" ]; then cd ${WORKDIR}; fi; $*"
6+
docker run -v ${PWD}/../:/home/dev/workspace -u dev:dev "${CONTAINER}" bash -c "if [ -d \"${WORKDIR}\" ]; then cd ${WORKDIR}; fi; $*"
117
else
8+
if ! /usr/bin/docker ps | grep "${CONTAINER}" > /dev/null; then
9+
docker compose -f docker-compose-dev.yml up -d
10+
fi
11+
1212
# (The shell is interactive if bash is called without arguments :)
1313
docker exec -i -t -u dev:dev "${CONTAINER}" bash -c "if [ -d \"${WORKDIR}\" ]; then cd ${WORKDIR}; fi; bash"
1414
fi
Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ services:
77
- apparmor:unconfined
88
cap_add:
99
- SYS_PTRACE
10-
container_name: cpp_docker_env
11-
image: cppdevenv:latest
10+
container_name: cpp_ci_env
11+
image: cpp_ci_env:latest
1212
environment:
1313
- TERM=xterm-256color # For a colored Terminal
1414
- SSH_AUTH_SOCK=/ssh-agent
@@ -18,10 +18,6 @@ services:
1818
- ${HOME}/.ssh/config:/home/dev/.ssh/config
1919
- ${HOME}/.gitconfig:/home/dev/.gitconfig
2020
- ${HOME}/git:/home/dev/git
21-
command: /usr/sbin/sshd -D
2221
user: root
23-
network_mode: "bridge"
24-
ports:
25-
- "2222:22"
2622
privileged: true
27-
hostname: cpp_docker_env
23+
hostname: cpp_docker_ci_env

docker/docker-compose-dev.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: '3'
2+
3+
services:
4+
ssh:
5+
security_opt: # options needed for gdb debugging
6+
- seccomp:unconfined
7+
- apparmor:unconfined
8+
cap_add:
9+
- SYS_PTRACE
10+
container_name: cpp_dev_env
11+
image: cpp_dev_env:latest
12+
environment:
13+
- TERM=xterm-256color # For a colored Terminal
14+
- SSH_AUTH_SOCK=/ssh-agent
15+
volumes:
16+
- ${PWD}/../:/home/dev/workspace
17+
command: /usr/sbin/sshd -D
18+
user: root
19+
network_mode: "bridge"
20+
ports:
21+
- "2222:22"
22+
privileged: true
23+
hostname: cpp_docker_env

0 commit comments

Comments
 (0)