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