Skip to content

Orbit v1.5.1: Docker Build Fixes

Latest

Choose a tag to compare

@varuns2903 varuns2903 released this 17 Sep 13:16
· 116 commits to main since this release

Packaging-only release. No library code changed. Upgrade only if you build the Docker image or use the drafted vcpkg port — every other integration path was unaffected in v1.5.0.

Fixed

docker build . could not complete

The builder stage never installed a libcurl development package, while CMakeLists.txt calls find_package(CURL REQUIRED):

CMake Error: Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
Call Stack: CMakeLists.txt:45 (find_package)

With that fixed the build reached the runtime stage and failed again:

Step 17/25 : COPY --from=builder /usr/lib/libnghttp3* /usr/lib/
COPY failed: no source files were specified

nghttp3 and ngtcp2 install with CMAKE_INSTALL_PREFIX=/usr, and GNUInstallDirs places libraries in the multiarch directory on Debian-derived distributions — /usr/lib/x86_64-linux-gnu, not /usr/lib. The corrected paths also pick up libngtcp2_crypto_quictls, needed at runtime and missed by the old globs too.

Failure came after ten minutes of compiling quictls from source, which made it an expensive way to discover a missing apt package.

Docker build context was 3.1 GB

.dockerignore covered four directories and missed vcpkg/, vcpkg_installed/, build_cov/ and the other build trees — all uploaded and baked into an image layer. Rewritten by category to match .gitignore, with an explicit block for credentials so key material cannot be captured in an image.

Context is now 6.9 MB.

vcpkg port

The drafted port's SHA512 referred to the v1.4.0 archive while its manifest declared a newer version, so it could not have verified its download.

Changed

  • The image no longer builds the test suite — it fetched GoogleTest over the network at configure time and compiled 18 translation units nothing in the runtime stage uses.
  • Removed the obsolete version key from docker-compose.yml, which Compose V2 warns about.

Verified

The image builds, runs, and answers HTTP on port 8080. ldd inside the container resolves libngtcp2, libngtcp2_crypto_quictls and libnghttp3 with no unresolved libraries. Final image is 276 MB.

docker build -t orbit-app .
docker run -p 8080:8080 -p 8443:8443 -p 8443:8443/udp orbit-app

Or with PostgreSQL and Redis alongside:

docker compose up --build

Full changelog: https://github.com/varuns2903/orbit-framework/blob/main/CHANGELOG.md