Skip to content

Commit 5d77c09

Browse files
author
Gonzalo Diaz
committed
[CONFIG] [Docker] clang-format added to Docker
1 parent e1e5300 commit 5d77c09

File tree

1 file changed

+36
-28
lines changed

1 file changed

+36
-28
lines changed

Dockerfile

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,39 @@
1-
FROM ubuntu:24.10 AS init
1+
FROM ubuntu:24.04 AS init
22

33
ENV WORKDIR=/app
44
WORKDIR ${WORKDIR}
55

66
RUN apt-get -y update && \
7-
apt-get -y install --no-install-recommends --no-install-suggests make && \
8-
rm -rf /var/lib/apt/lists/*
7+
apt-get -y install --no-install-recommends --no-install-suggests make && \
8+
rm -rf /var/lib/apt/lists/*
99

1010
FROM init AS builder
1111

1212
# build tools
13-
RUN apt-get -y update && \
14-
apt-get -y install --no-install-recommends --no-install-suggests build-essential cmake g++ make pkg-config && \
15-
rm -rf /var/lib/apt/lists/*
13+
14+
RUN apt-get update && \
15+
apt-get -y install --no-install-recommends --no-install-suggests gnupg software-properties-common && \
16+
rm -rf /var/lib/apt/lists/*
17+
ADD https://apt.llvm.org/llvm-snapshot.gpg.key llvm-snapshot.gpg.key
18+
RUN apt-key add llvm-snapshot.gpg.key && \
19+
apt-add-repository "deb http://apt.llvm.org/noble/ llvm-toolchain-noble main" && \
20+
apt-get -y update && \
21+
apt-get -y install --no-install-recommends --no-install-suggests build-essential cmake g++ make pkg-config && \
22+
apt-get -y install --no-install-recommends --no-install-suggests clang-format && \
23+
rm -rf /var/lib/apt/lists/*
1624

1725
# vcpkg Package Manager
1826
ADD https://github.com/microsoft/vcpkg/archive/refs/tags/2024.08.23.tar.gz vcpkg.tar.gz
1927
RUN apt-get -y update && \
20-
apt-get -y install --no-install-recommends --no-install-suggests \
21-
ca-certificates curl git unzip zip && \
22-
rm -rf /var/lib/apt/lists/* && \
23-
mkdir /opt/vcpkg && \
24-
tar xf vcpkg.tar.gz --strip-components=1 -C /opt/vcpkg && \
25-
/opt/vcpkg/bootstrap-vcpkg.sh && \
26-
ln -s /opt/vcpkg/vcpkg /usr/local/bin/vcpkg && \
27-
rm -rf vcpkg.tar.gz && \
28-
vcpkg version
28+
apt-get -y install --no-install-recommends --no-install-suggests \
29+
ca-certificates curl git unzip zip && \
30+
rm -rf /var/lib/apt/lists/* && \
31+
mkdir /opt/vcpkg && \
32+
tar xf vcpkg.tar.gz --strip-components=1 -C /opt/vcpkg && \
33+
/opt/vcpkg/bootstrap-vcpkg.sh && \
34+
ln -s /opt/vcpkg/vcpkg /usr/local/bin/vcpkg && \
35+
rm -rf vcpkg.tar.gz && \
36+
vcpkg version
2937
ENV VCPKG_ROOT=/opt/vcpkg
3038

3139
# sources
@@ -37,31 +45,31 @@ COPY ./Makefile ${WORKDIR}/
3745

3846
# dependencies
3947
RUN vcpkg --x-wait-for-lock integrate install && \
40-
vcpkg --x-wait-for-lock install
48+
vcpkg --x-wait-for-lock install
4149

4250
LABEL vcpkg=enabled
4351

4452
# build
4553
RUN ls -alhR && \
46-
mkdir build && \
47-
make build && \
48-
ls -alhR
54+
mkdir build && \
55+
make build && \
56+
ls -alhR
4957

5058
CMD ["make", "build"]
5159

5260
FROM builder AS development
5361

5462
# CMD []
5563

56-
FROM init AS lint
64+
FROM builder AS lint
5765

5866
RUN apt-get -y update && \
59-
apt-get -y install --no-install-recommends --no-install-suggests dialog apt-utils && \
60-
apt-get -y install --no-install-recommends --no-install-suggests yamllint && \
61-
apt-get -y install --no-install-recommends --no-install-suggests nodejs npm && \
62-
apt-get -y install --no-install-recommends --no-install-suggests cppcheck && \
63-
rm -rf /var/lib/apt/lists/* && \
64-
npm install -g --ignore-scripts markdownlint-cli
67+
apt-get -y install --no-install-recommends --no-install-suggests dialog apt-utils && \
68+
apt-get -y install --no-install-recommends --no-install-suggests yamllint && \
69+
apt-get -y install --no-install-recommends --no-install-suggests nodejs npm && \
70+
apt-get -y install --no-install-recommends --no-install-suggests cppcheck && \
71+
rm -rf /var/lib/apt/lists/* && \
72+
npm install -g --ignore-scripts markdownlint-cli
6573

6674
# Code source
6775
COPY ./src ${WORKDIR}/src
@@ -83,8 +91,8 @@ CMD ["make", "lint"]
8391
FROM development AS testing
8492

8593
RUN apt-get -y update && \
86-
apt-get -y install --no-install-recommends --no-install-suggests gcovr && \
87-
rm -rf /var/lib/apt/lists/*
94+
apt-get -y install --no-install-recommends --no-install-suggests gcovr && \
95+
rm -rf /var/lib/apt/lists/*
8896

8997
COPY --from=builder ${WORKDIR}/build ${WORKDIR}/
9098

0 commit comments

Comments
 (0)