Files
love-tools/builder.Dockerfile
T
mr.zeroandClaude Fable 5 7e39f41b27 Add fused desktop binaries (win/mac/linux) to the pipeline
Fuse the .love into the official LÖVE 11.5 release artifacts: win-x64
(love.exe concat + dlls), mac-universal (love.app bundle, Info.plist
patched) and linux-x64 (AppImage rebuilt via readelf offset +
unsquashfs/mksquashfs — the AppImage runtime is glibc-linked and
cannot run on the alpine builder). The builder image pre-fetches the
dist files to /opt/love-dist and gains squashfs-tools + binutils.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 23:08:07 +02:00

35 lines
1.4 KiB
Docker

# CI builder image for Love2D projects: packaging tools + luac syntax check,
# with love.js and the official LÖVE dist files pre-fetched so the pipeline
# does not hit GitHub on every run (the Makefile falls back to curl elsewhere).
#
# squashfs-tools + binutils are needed for the linux AppImage fusing:
# the AppImage runtime is glibc-linked so it cannot be executed on alpine —
# the Makefile computes the squashfs offset with readelf and repacks with
# mksquashfs instead.
#
# Build & push (the CI runner is linux/amd64):
# docker build --platform linux/amd64 -f builder.Dockerfile \
# -t git.teletypegames.org/internal/love-builder:latest .
# docker push git.teletypegames.org/internal/love-builder:latest
FROM alpine:3.22
ARG LOVE_VERSION=11.5
RUN apk add --no-cache make zip unzip curl git lua5.4 squashfs-tools binutils \
&& ln -sf /usr/bin/lua5.4 /usr/bin/lua \
&& ln -sf /usr/bin/luac5.4 /usr/bin/luac
RUN curl -sSL https://github.com/2dengine/love.js/archive/refs/heads/master.zip \
-o /opt/lovejs.zip
RUN mkdir -p /opt/love-dist \
&& cd /opt/love-dist \
&& curl -sSLO https://github.com/love2d/love/releases/download/${LOVE_VERSION}/love-${LOVE_VERSION}-win64.zip \
&& curl -sSLO https://github.com/love2d/love/releases/download/${LOVE_VERSION}/love-${LOVE_VERSION}-macos.zip \
&& curl -sSLO https://github.com/love2d/love/releases/download/${LOVE_VERSION}/love-${LOVE_VERSION}-x86_64.AppImage
WORKDIR /workspace
CMD ["/bin/sh"]