Some checks failed
Build and Deploy / build-windows (CLANG64) (push) Waiting to run
Build and Deploy / package-dist (push) Blocked by required conditions
Build and Deploy / deploy-itch (push) Blocked by required conditions
Build and Deploy / deploy-gitea (push) Blocked by required conditions
Build and Deploy / build-macos (push) Failing after 5s
Build and Deploy / build-linux (push) Failing after 2m15s
54 lines
1.4 KiB
Docker
54 lines
1.4 KiB
Docker
# Builder stage
|
|
FROM ubuntu:plucky AS builder
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
python3 python3-pip \
|
|
libasound2-dev \
|
|
libpulse-dev \
|
|
libudev-dev \
|
|
libwayland-dev \
|
|
wayland-protocols \
|
|
libxkbcommon-dev \
|
|
libx11-dev \
|
|
libxext-dev \
|
|
libxrandr-dev \
|
|
libxcursor-dev \
|
|
libxi-dev \
|
|
libxinerama-dev \
|
|
libxss-dev \
|
|
libegl1-mesa-dev \
|
|
libgl1-mesa-dev \
|
|
cmake \
|
|
ninja-build \
|
|
git \
|
|
build-essential \
|
|
binutils \
|
|
pkg-config \
|
|
meson \
|
|
zip && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
RUN git clone https://gitea.pockle.world/john/prosperon.git
|
|
WORKDIR /app/prosperon
|
|
RUN git checkout jsffi_refactor
|
|
RUN meson setup build -Dbuildtype=release -Db_lto=true -Db_lto_mode=thin -Db_ndebug=true
|
|
RUN meson compile -C build
|
|
|
|
# Runtime stage
|
|
FROM ubuntu:latest
|
|
|
|
# Install minimal runtime dependencies (e.g., for dynamically linked libraries)
|
|
RUN apt-get update && apt-get install -y libstdc++6 && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Copy the compiled prosperon binary from the build stage
|
|
COPY --from=builder /app/prosperon/build/prosperon /usr/local/bin/prosperon
|
|
|
|
# Create an entrypoint script
|
|
RUN echo '#!/bin/bash' > /entrypoint.sh && \
|
|
echo '/usr/local/bin/prosperon "$@" &' >> /entrypoint.sh && \
|
|
echo 'tail -f /dev/null' >> /entrypoint.sh && \
|
|
chmod +x /entrypoint.sh
|
|
|
|
WORKDIR /workdir
|
|
ENTRYPOINT ["/entrypoint.sh"] |