-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge 'docker: Lint dockerfile' from Pavel Talashchenko
lint dockerfile ([linter](https://hadolint.github.io/hadolint/)): - reduce image size - reduce layers amount - prevent caching issues related to apt-get commands usage - use arguments JSON notation for CMD: [rationale](https://github.com/hadolint/hadolint/wiki/DL3025#rationale) sort packages alphanumerically to make maintenance easier Closes #2283 * https://github.com/scylladb/seastar: scripts: sort packages alphanumerically docker: bind the file instead of copying during the build stage docker: lint dockerfile
- Loading branch information
Showing
2 changed files
with
116 additions
and
98 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,36 @@ | ||
# syntax=docker/dockerfile:1 | ||
|
||
FROM ubuntu:mantic | ||
RUN apt-get -y update | ||
RUN apt-get -y install gnupg curl | ||
RUN echo "deb http://apt.llvm.org/mantic/ llvm-toolchain-mantic-17 main" \ | ||
>> /etc/apt/sources.list.d/llvm.list | ||
RUN echo "deb http://apt.llvm.org/mantic/ llvm-toolchain-mantic-18 main" \ | ||
>> /etc/apt/sources.list.d/llvm.list | ||
RUN curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key -o /etc/apt/trusted.gpg.d/apt.llvm.org.asc | ||
RUN apt -y update \ | ||
&& apt -y install build-essential \ | ||
&& apt -y install gcc-12 g++-12 gcc-13 g++-13 pandoc \ | ||
|
||
RUN --mount=type=bind,source=./install-dependencies.sh,target=./install-dependencies.sh \ | ||
apt-get update && apt-get install -y \ | ||
curl \ | ||
gnupg \ | ||
&& echo "deb http://apt.llvm.org/mantic/ llvm-toolchain-mantic-17 main" \ | ||
>> /etc/apt/sources.list.d/llvm.list \ | ||
&& echo "deb http://apt.llvm.org/mantic/ llvm-toolchain-mantic-18 main" \ | ||
>> /etc/apt/sources.list.d/llvm.list \ | ||
&& curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key -o /etc/apt/trusted.gpg.d/apt.llvm.org.asc \ | ||
&& apt-get update && apt-get install -y \ | ||
build-essential \ | ||
clang-17 \ | ||
clang-18 \ | ||
clang-tools-18 \ | ||
gcc-12 \ | ||
g++-12 \ | ||
gcc-13 \ | ||
g++-13 \ | ||
pandoc \ | ||
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 12 \ | ||
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 12 \ | ||
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13 \ | ||
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13 \ | ||
&& apt -y install clang-17 clang-18 clang-tools-18 \ | ||
&& update-alternatives --install /usr/bin/clang clang /usr/bin/clang-17 17 \ | ||
&& update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-17 17 \ | ||
&& update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 18 \ | ||
&& update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 18 | ||
COPY install-dependencies.sh /tmp/ | ||
RUN bash /tmp/install-dependencies.sh | ||
CMD /bin/bash | ||
&& update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 18 \ | ||
&& bash ./install-dependencies.sh \ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
CMD ["/bin/bash"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters