network-experiment/devcontainer.Dockerfile

52 lines
1.3 KiB
Docker

FROM alpine:3.21.3
# Build type used by conan. "Debug" and "Release" are supported.
ARG BUILD_TYPE=Debug
RUN mkdir -p /root/.local/bin
ENV PATH="${PATH}:/root/.local/bin"
# Install packages needed in both building and running.
RUN apk update && \
apk add --no-cache \
libstdc++
# Install tools required for building.
RUN apk add --no-cache \
autoconf \
bash \
build-base \
cmake \
clang \
clang-extra-tools \
gdb \
git \
libtool \
linux-headers \
ninja \
m4 \
perl \
python3 \
pipx && \
pipx ensurepath
RUN pipx install conan && \
conan profile detect
# Pre-build some conan packages we require and take a lot of time to build. This to
# avoid expensive rebuilding everytime we need a fresh dev container..
RUN mkdir -p /workspaces/tmp
WORKDIR /workspaces/tmp
RUN conan install -s build_type=${BUILD_TYPE} -b=* --requires=boost/1.89.0
RUN conan install -s build_type=${BUILD_TYPE} -b=* --requires=libmagic/5.45
RUN conan install -s build_type=${BUILD_TYPE} -b=* --requires=freetype/2.14.1
RUN conan install -s build_type=${BUILD_TYPE} -b=missing --requires=gtest/1.14.0
RUN conan install -s build_type=${BUILD_TYPE} -b=missing --requires=libjpeg/9f
WORKDIR /workspaces
RUN rm -rf tmp
RUN apk add --no-cache \
clang \
clang-extra-tools \
gdb \
git