Files
vitaImmich/Dockerfile
T
ninoandClaude Sonnet 4.6 07890191cf Add albums support, API layer, and Docker improvements
- Add albums browsing and navigation (src/albums.c, src/app.c)
- Extract API calls into dedicated src/api.c module
- Improve display and UI components
- Update CMakeLists.txt to include new source files
- Refactor Dockerfile for better build process

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-10-23 14:11:00 -06:00

46 lines
2.4 KiB
Docker

FROM vitasdk/vitasdk:latest
# The published image has changed base distro over time (Alpine -> Ubuntu), so
# probe for the package manager instead of assuming `apk`. Recent images
# already ship cmake/make/git, in which case this layer is a no-op.
RUN if command -v apk >/dev/null 2>&1; then \
apk add --no-cache cmake make git ca-certificates; \
elif command -v apt-get >/dev/null 2>&1; then \
apt-get update && apt-get install -y --no-install-recommends \
cmake make git ca-certificates && rm -rf /var/lib/apt/lists/*; \
fi
# vdpm is pre-installed at /usr/local/vitasdk/bin/vdpm; -f = force install.
#
# NOTE 1: `openssl` (1.0.2) is deliberately NOT listed. The SDK's libcurl.a
# (curl 8.17) is prebuilt against OpenSSL 1.0.2, but the image ships
# openssl-1.1.1 as the installed default (a dependency of cpython3) and the two
# vdpm packages conflict, so `vdpm openssl` aborts and leaves libcurl
# referencing 1.0.2-only symbols (EVP_MD_CTX_create, SSLeay,
# SSLv23_client_method, ...) that 1.1.1 does not provide -> link failure.
# The RUN below overlays the matching 1.0.2 libs/headers from the tarball.
#
# NOTE 2: vita2d is NOT a vdpm package (it ships with the SDK core).
RUN yes | vdpm -f zlib libpng libjpeg-turbo freetype curl zstd
# Overlay the OpenSSL 1.0.2 build libcurl was compiled against (see above).
# This is the `openssl` vdpm package from the release snapshot the image's own
# package DB points at; the SHA256 is the one recorded in that DB.
ARG OPENSSL_URL=https://github.com/vitasdk/vitasdk-autobuild/releases/download/packages-2026.08-snapshot-20260925.50.1/openssl-1.0.2.r12304.gcd52124-1-vita.pkg.tar.xz
ADD ${OPENSSL_URL} /tmp/openssl102.tar.xz
RUN echo "1f97f3658fa6099354547202e2a9df6fa2919c60bcce314c83e99ef25de8998e /tmp/openssl102.tar.xz" | sha256sum -c - && \
mkdir -p /tmp/o102 && tar xJf /tmp/openssl102.tar.xz -C /tmp/o102 && \
cp -a /tmp/o102/arm-vita-eabi/lib/libcrypto.a \
/tmp/o102/arm-vita-eabi/lib/libssl.a \
/usr/local/vitasdk/arm-vita-eabi/lib/ && \
cp -a /tmp/o102/arm-vita-eabi/include/openssl/. \
/usr/local/vitasdk/arm-vita-eabi/include/openssl/ && \
rm -rf /tmp/o102 /tmp/openssl102.tar.xz
WORKDIR /src
COPY . .
RUN cmake -B /build -DCMAKE_BUILD_TYPE=Release . && cmake --build /build --parallel 4
# Mount a host directory to /output to retrieve the VPK
CMD ["sh", "-c", "cp /build/vitaImmich.vpk /output/vitaImmich.vpk && echo 'Done: /output/vitaImmich.vpk'"]