Dockerfile1296 bytes written ▸text63 lines · 1296 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
asciidoctor \
bash \
build-essential \
ccache \
clang \
cmake \
docbook-xml \
docbook-xsl \
elfutils \
binutils \
gcc-multilib \
gcc-12 \
g++-12 \
libhiredis-dev \
libzstd-dev \
ninja-build \
python3 \
redis-server \
redis-tools \
; \
rm -rf /var/lib/apt/lists/*
# Redirect all compilers to ccache.
RUN set -eux; \
for t in gcc g++ cc c++ clang clang++; do \
if [ -x "/usr/bin/$t" ]; then \
ln -sv /usr/bin/ccache "/usr/local/bin/$t"; \
fi; \
done
COPY . /ccache
WORKDIR /ccache
RUN cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=CI \
&& cmake --build build -j$(nproc)
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
bash \
libhiredis-dev \
libzstd-dev \
python3 \
redis-server \
redis-tools \
ca-certificates \
; \
rm -rf /var/lib/apt/lists/*
COPY --from=builder /ccache/build/ccache /usr/local/bin/ccache
WORKDIR /root
CMD ["/bin/bash"]