mirror of
https://github.com/MoHadiShibli/Control4Free.git
synced 2026-10-23 05:01:24 +02:00
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.
30 lines
1.8 KiB
Docker
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
|