forked from aki/docker-aseprite-linux
61 lines
1.9 KiB
Docker
61 lines
1.9 KiB
Docker
# Use Debian 12 Slim as the base image
|
|
FROM debian:12-slim
|
|
|
|
# Set environment variables for non-interactive install
|
|
ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC
|
|
|
|
# Arguments for user and group ID
|
|
ARG UID=1000
|
|
ARG GID=1000
|
|
|
|
# Install necessary tools: Flatpak, builder, git, ccache, etc.
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
flatpak \
|
|
flatpak-builder \
|
|
git \
|
|
curl \
|
|
unzip \
|
|
ca-certificates \
|
|
elfutils \
|
|
ccache \
|
|
# Build dependencies for system libraries
|
|
build-essential \
|
|
ninja-build \
|
|
pkg-config \
|
|
python3 \
|
|
# Clean up apt cache
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Add Flathub remote and install the Freedesktop SDK and Platform
|
|
# Using 23.08 version as specified in the manifest
|
|
RUN flatpak remote-add --system --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo && \
|
|
flatpak install --system --noninteractive flathub org.freedesktop.Sdk//23.08 && \
|
|
flatpak install --system --noninteractive flathub org.freedesktop.Platform//23.08
|
|
|
|
# Create a non-root user for the build process
|
|
RUN groupadd -g $GID builder && \
|
|
useradd -u $UID -g $GID -ms /bin/bash builder && \
|
|
mkdir -p /home/builder/.cache/ccache && \
|
|
chown -R builder:builder /home/builder
|
|
|
|
# Create directories needed for the build and set ownership
|
|
# /sources will be mounted from host, /build is for build artifacts
|
|
RUN mkdir -p /sources /build && \
|
|
chown -R builder:builder /build
|
|
|
|
# Set user and home directory
|
|
USER builder
|
|
ENV HOME /home/builder
|
|
ENV CCACHE_DIR /home/builder/.cache/ccache
|
|
ENV PATH /usr/lib/ccache:$PATH
|
|
|
|
# Set working directory for the build process
|
|
WORKDIR /build
|
|
|
|
# Copy the Flatpak manifest into the build directory (owned by builder due to WORKDIR and USER settings)
|
|
COPY --chown=builder:builder com.aseprite.Aseprite.yaml .
|
|
|
|
# Default command for interactive use
|
|
CMD ["bash"]
|