Files
MoHadiShibli ed5e828701 Build with official mirrors and the verified OpenOrbis archive
Avoid Docker Hub pull limits using pinned Docker Official Images on ECR. Fetch the same OpenOrbis release directly and verify its SHA256; retain the existing toolchain and runtime dependencies.
2026-10-10 00:39:29 +03:00

30 lines
1.8 KiB
Docker

# The official release contains the same OpenOrbis files as the former pinned
# toolchain image. Fetch it directly so this build needs no Docker Hub pulls.
FROM control4free-build:latest AS openorbis
ARG OPENORBIS_VERSION=v0.5.3
ARG OPENORBIS_ARCHIVE=toolchain-llvm-18.2.zip
ARG OPENORBIS_SHA256=5006bb8629a40093b712fac971456fa4d5ad3fafaadb16d11c10b8a93b8b496f
RUN curl -fsSL --retry 3 -o /tmp/openorbis.zip \
"https://github.com/OpenOrbis/OpenOrbis-PS4-Toolchain/releases/download/${OPENORBIS_VERSION}/${OPENORBIS_ARCHIVE}" \
&& echo "${OPENORBIS_SHA256} /tmp/openorbis.zip" | sha256sum -c - \
&& mkdir /tmp/openorbis \
&& unzip -q /tmp/openorbis.zip -d /tmp/openorbis \
&& tar -xzf /tmp/openorbis/toolchain-llvm-18.tar.gz -C /opt \
&& test -f /opt/OpenOrbis/PS4Toolchain/lib/crt1.o \
&& rm -rf /tmp/openorbis /tmp/openorbis.zip
# Docker's official Ubuntu mirror, pinned to the same image as Docker Hub.
FROM public.ecr.aws/docker/library/ubuntu:20.04@sha256:8feb4d8ca5354def3d8fce243717141ce31e2c428701f6682bd2fafe15388214 AS pkgcompat
RUN apt-get update && apt-get install -y --no-install-recommends libssl1.1 \
&& rm -rf /var/lib/apt/lists/*
FROM control4free-build:latest
# Node runs the page's own functions in the frontend test.
RUN apt-get update && apt-get install -y --no-install-recommends nodejs \
&& rm -rf /var/lib/apt/lists/*
COPY --from=openorbis /opt/OpenOrbis/PS4Toolchain /opt/OpenOrbis/PS4Toolchain
# The SDK's self-contained LibOrbisPkg runtime expects OpenSSL 1.1.
COPY --from=pkgcompat /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/x86_64-linux-gnu/
COPY --from=pkgcompat /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/x86_64-linux-gnu/
ENV OO_PS4_TOOLCHAIN=/opt/OpenOrbis/PS4Toolchain
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
WORKDIR /src