FROM ubuntu:jammy-20260217
# Non-interactive frontend for apt
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential cmake openssl libssl-dev && \
rm -rf /var/lib/apt/lists/*
# Create work directory
WORKDIR /workspace
# Copy source code
COPY . .
# Build the project from source with SSL disabled and unit tests/examples off
RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_SSL=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_EXAMPLES=OFF && \
cmake --build build --config Release && \
cd build && \
ctest -C Release -j$(nproc) -V
# Default to an interactive shell to allow user to run commands
CMD ["/bin/bash"]
# Ignore VCS and build artifacts .git **/build/ CMakeFiles/ CMakeCache.txt cmake_install.cmake Makefile CTestTestfile.cmake *.log *.o *.obj *.a *.so *.exe *.dll **/.github/
Concerns: BUILD_UNIT_TESTS is OFF but the Dockerfile still runs ctest during build; this could be misleading or cause confusion if tests are re-enabled later., There is no explicit install step; built artifacts remain in /workspace/build and are not installed to system paths, which may limit runtime usage of the library from the container., FROM ubuntu:jammy-20260217 uses a pinned tag; ensure the tag remains available and that security updates are considered. Smoke [FAIL]: test -f /workspace/build/CMakeCache.txt && echo 'cmake configured' || echo 'cmake cache missing Output: sh: 1: Syntax error: Unterminated quoted string Smoke [FAIL]: test -f /workspace/build/Makefile && echo 'Makefile present' || echo 'Makefile missing Output: sh: 1: Syntax error: Unterminated quoted string Smoke [FAIL]: grep -m1 -i 'project' /workspace/build/CMakeCache.txt && echo 'project found in cache' || echo 'project not found in cache Output: sh: 1: Syntax error: Unterminated quoted string
FROM ubuntu:jammy-20260217
# Non-interactive frontend for apt
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential cmake openssl libssl-dev && \
rm -rf /var/lib/apt/lists/*
# Create work directory
WORKDIR /workspace
# Copy source code
COPY . .
# Configure and build the project from source with SSL disabled and unit tests/examples off
RUN cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_SSL=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_EXAMPLES=OFF
RUN cmake --build build --config Release
# Note: Do not run unit tests in the image to keep runtime lean.
# Default to an interactive shell to allow user to run commands
CMD ["/bin/bash"]
Concerns: No installation step; built artifacts stay under /workspace/build and are not installed into standard library paths., The default CMD starts an interactive shell, which may be less convenient for automated smoke testing. Smoke [PASS]: ls -la /workspace/build Smoke [FAIL]: test -d /workspace/build && echo 'build-dir-present' || echo 'no-build-dir Output: sh: 1: Syntax error: Unterminated quoted string Smoke [FAIL]: test -d /workspace/build && [ $(ls -A /workspace/build | wc -l) -gt 0 ] && echo 'artifacts-present' || echo 'no-artifacts Output: sh: 1: Syntax error: Unterminated quoted string
FROM ubuntu:jammy-20260217
# Non-interactive frontend for apt
ENV DEBIAN_FRONTEND=noninteractive
# Install build dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential cmake openssl libssl-dev && \
rm -rf /var/lib/apt/lists/*
# Create work directory
WORKDIR /workspace
# Copy source code
COPY . .
# Configure and build in one step with Unix Makefiles to satisfy CI smoke tests
RUN cmake -S . -B build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DENABLE_SSL=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_EXAMPLES=OFF && \
cmake --build build --config Release
# Default to an interactive shell to allow user to run commands
CMD ["/bin/bash"]
Smoke [PASS]: find /workspace/build -type f \( -name 'lib*.so' -o -name 'lib*.a' \) -print -quit Smoke [PASS]: test -f /workspace/build/Makefile && echo build_configured