All checks were successful
Verification / Is-Buildable (push) Successful in 2m59s
40 lines
1.4 KiB
Docker
40 lines
1.4 KiB
Docker
# Build-environment image: contains the toolchain and dependencies only.
|
|
# The source tree is bind-mounted at runtime and compiled inside the container:
|
|
#
|
|
# docker build -t cloud-point-rpc-dev .
|
|
# docker run -d --name cprpc-dev --network=host -v "$(pwd)":/app cloud-point-rpc-dev
|
|
# docker exec -it cprpc-dev meson setup build-docker
|
|
# docker exec -it cprpc-dev meson compile -C build-docker
|
|
# docker exec -it cprpc-dev ./build-docker/src/cloud_point_rpc_cli config.yml
|
|
#
|
|
# Use a dedicated build directory (build-docker) so host and container
|
|
# builds never share Meson state.
|
|
FROM ubuntu:24.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# - build-essential, meson, ninja-build, cmake, pkg-config: toolchain
|
|
# - git: Meson subprojects (asio, json, yaml-cpp, glog, jsonrpccxx, gtest)
|
|
# - libopencv-dev: OpenCV 4 incl. contrib modules (ximgproc for the WLS filter)
|
|
# - libunwind-dev: glog stack traces
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
meson \
|
|
ninja-build \
|
|
cmake \
|
|
pkg-config \
|
|
git \
|
|
ca-certificates \
|
|
libunwind-dev \
|
|
libopencv-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# The mounted checkout is usually owned by a different uid than root inside
|
|
# the container; git refuses to touch it otherwise (Meson subprojects need git).
|
|
RUN git config --global --add safe.directory '*'
|
|
|
|
WORKDIR /app
|
|
|
|
# Keep the container alive; build and run via `docker exec`.
|
|
CMD ["tail", "-F", "/dev/null"]
|