1- # FROM ubuntu:xenial
2- FROM debian:12-slim
3- LABEL maintainer=
"[email protected] " 4-
1+ FROM ubuntu:22.04 as base
2+ # Set the default shell to Bash
3+ SHELL ["/bin/bash" , "-c" ]
54ENV PS3DEV /usr/local/ps3dev
65ENV PSL1GHT ${PS3DEV}
7- ENV PATH ${PATH}:${PS3DEV}/bin:${PS3DEV}/ppu/bin:${PS3DEV}/spu/bin
8-
6+ ENV PATH ${PATH}:${PS3DEV}/bin:${PS3DEV}/ppu/bin:${PS3DEV}/spu/bin:${PS3DEV}/portlibs/ppu/bin
7+ ENV PKG_CONFIG_PATH ${PS3DEV}/portlibs/ppu/lib/pkgconfig
98ENV DEBIAN_FRONTEND=noninteractive
9+ # last python version with diskutils module support
10+ ENV PYTHON_VERSION=3.10
11+ ENV PYENV_ROOT ${HOME}/.pyenv
12+ ENV PIP_ROOT_USER_ACTION=ignore
13+ ENV PATH ${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:$PATH
14+ RUN apt update -y && \
15+ apt --no-install-recommends install -y autoconf automake bison build-essential bzip2 \
16+ ca-certificates cmake flex gettext-base git libelf-dev libgmp3-dev libncurses5-dev libssl-dev \
17+ libtool libtool-bin make patch pkg-config texinfo wget xz-utils zlib1g-dev && \
18+ # Fixes certificate errors with letsencrypt in ARMv7
19+ echo 'ca_certificate=/etc/ssl/certs/ca-certificates.crt' >> /etc/wgetrc && \
20+ # Install dependencies specific for amd64 architecture
21+ if [ "$(uname -m)" = "x86_64" ]; then apt install -y nvidia-cg-toolkit ; fi && \
22+ # pyenv
23+ apt --no-install-recommends install -y zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
24+ llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev curl git && \
25+ echo 'cacert=/etc/ssl/certs/ca-certificates.crt' >> ~/.curlrc && \
26+ git config --global http.sslverify 'false' && \
27+ curl https://pyenv.run | bash && \
28+ pyenv update && pyenv install $PYTHON_VERSION && pyenv global $PYTHON_VERSION && pyenv rehash && \
29+ pip install pycrypto && \
30+ # pyenv
31+ apt -y clean autoclean autoremove
1032
11- RUN \
12- apt-get -y update && \
13- apt-get -y install \
14- autoconf bison build-essential ca-certificates flex git libelf-dev\
15- libgmp-dev libncurses5-dev libssl-dev libtool-bin pkg-config python-dev-is-python3 \
16- texinfo wget zlib1g-dev && \
17- apt-get -y clean autoclean autoremove && \
18- rm -rf /var/lib/{apt,dpkg,cache,log}/
19-
33+ FROM base as builder
2034RUN mkdir /build
2135WORKDIR /build
2236COPY . /build
37+ RUN /build/toolchain.sh
2338
24- # Fixes certificate errors with letsencrypt in ARMv7
25- # RUN echo "\nca_certificate=/etc/ssl/certs/ca-certificates.crt" | tee -a /etc/wgetrc
26- # RUN /build/toolchain.sh
39+ FROM base as runtime
40+ ENV PS3DEV /usr/local/ps3dev
41+ ENV PSL1GHT ${PS3DEV}
42+ ENV PATH ${PATH}:${PS3DEV}/bin:${PS3DEV}/ppu/bin:${PS3DEV}/spu/bin:${PS3DEV}/portlibs/ppu/bin
43+ ENV PKG_CONFIG_PATH ${PS3DEV}/portlibs/ppu/lib/pkgconfig
44+ COPY --from=builder ${PS3DEV} ${PS3DEV}
2745
46+ # How to build and run a multi platform image
47+ # Tested platforms: linux/amd64 or linux/arm64
48+ # DOCKER_DEFAULT_PLATFORM=linux/arm64 docker build . -t ps3dev
49+ # DOCKER_DEFAULT_PLATFORM=linux/arm64 docker run -it -v `pwd`:/build -w /build ps3dev
0 commit comments