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" ]
5
4
ENV PS3DEV /usr/local/ps3dev
6
5
ENV 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
9
8
ENV 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
10
32
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
20
34
RUN mkdir /build
21
35
WORKDIR /build
22
36
COPY . /build
37
+ RUN /build/toolchain.sh
23
38
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}
27
45
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