wibo/Dockerfile.ubuntu

44 lines
1.1 KiB
Docker

# Build stage
FROM ubuntu:24.04 AS build
# Install dependencies
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
binutils \
binutils-mingw-w64-i686 \
ca-certificates \
cmake \
file \
g++-multilib \
gcc-mingw-w64-i686 \
gdb \
git \
ninja-build \
unzip \
wget \
&& rm -rf /var/lib/apt/lists/*
# Copy source files
WORKDIR /wibo
COPY . /wibo
# Build type (Release, Debug, RelWithDebInfo, MinSizeRel)
ARG build_type=Release
RUN cmake -S /wibo -B /wibo/build -G Ninja \
-DCMAKE_BUILD_TYPE="$build_type" \
-DBUILD_TESTING=ON \
-DWIBO_ENABLE_FIXTURE_TESTS=ON \
&& cmake --build /wibo/build \
&& ( [ "$build_type" != "Release" ] || strip -g /wibo/build/wibo )
# Export binary (usage: docker build -f Dockerfile.ubuntu --target export --output dist .)
FROM scratch AS export
COPY --from=build /wibo/build/wibo .
# Runnable container
FROM ubuntu:24.04
COPY --from=build /wibo/build/wibo /usr/local/sbin/wibo
CMD ["/usr/local/sbin/wibo"]