Files
docker-images/arch-builder/Dockerfile
Walter Oggioni 1d3b5fc9ad
All checks were successful
CI / Build arch-builder docker images (push) Successful in 9m3s
moved cargo configuration file in arch builder image
2024-08-22 11:56:36 +08:00

99 lines
3.3 KiB
Docker

FROM archlinux:latest AS base
COPY mirrorlist /etc/pacman.d/mirrolist
RUN pacman-key --refresh-keys
RUN pacman -Syu --noconfirm
RUN pacman -S --noconfirm --needed curl rustup
RUN mkdir downloads
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/aarch64-unknown-linux-musl-gcc/13.2.0/aarch64-unknown-linux-musl-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/aarch64-unknown-linux-musl-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/aarch64-unknown-linux-musl/bin/aarch64-unknown-linux-musl-gcc /usr/local/bin/aarch64-linux-musl-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/x86_64-unknown-linux-musl-gcc/13.2.0/x86_64-unknown-linux-musl-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/x86_64-unknown-linux-musl-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/x86_64-woggioni-linux-musl/bin/x86_64-woggioni-linux-musl-gcc /usr/local/bin/x86_64-linux-musl-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/arm-unknown-linux-musleabihf-gcc/13.2.0/arm-unknown-linux-musleabihf-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/arm-unknown-linux-musleabihf-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/arm-unknown-linux-musleabihf/bin/arm-unknown-linux-musleabihf-gcc /usr/local/bin/arm-linux-musleabihf-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/arm-unknown-linux-musleabi-gcc/13.2.0/arm-unknown-linux-musleabi-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/arm-unknown-linux-musleabi-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/arm-unknown-linux-musleabihf/bin/arm-unknown-linux-musleabi-gcc /usr/local/bin/arm-linux-musleabi-gcc
RUN curl --retry 3 https://gitea.woggioni.net/api/packages/woggioni/generic/x86_64-w64-mingw32-gcc/13.2.0/x86_64-w64-mingw32-gcc-13.2.0-1-x86_64.pkg.tar.zst \
-o downloads/x86_64-w64-mingw32-gcc-13.2.0-1-x86_64.pkg.tar.zst
RUN ln -s /opt/x-tools/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-gcc /usr/local/bin/x86_64-pc-windows-gnu-gcc
RUN pacman -U downloads/*.pkg.tar.* --noconfirm
RUN rm -rf downloads
COPY makepkg/* /etc/
RUN useradd luser -G users -u 1000 -s /bin/bash -m -d /home/luser
RUN pacman -S --noconfirm --needed \
git \
cmake \
base-devel \
meson \
tar \
xz \
ccache \
lzop \
lz4 \
bzip2 \
gzip \
upx
FROM base AS kernel
RUN pacman -S --noconfirm --needed \
jre21-openjdk \
bc \
cpio \
gettext \
libelf \
pahole \
perl \
python \
python-pip \
python-build \
python-wheel \
graphviz \
imagemagick \
python-sphinx \
python-yaml \
openssh \
texlive-latexextra
USER luser
WORKDIR /home/luser
FROM base AS rust
RUN mkdir -p /etc/cargo
COPY config.toml /.cargo/
RUN pacman -S --noconfirm --needed \
rustup \
sccache \
llvm \
clang
FROM rust AS rust-full
RUN pacman -S --noconfirm --needed \
hidapi \
protobuf
FROM rust-full AS rust-full-rootless
USER luser
WORKDIR /home/luser
RUN mkdir .cargo
RUN rustup toolchain install stable-x86_64-unknown-linux-gnu
RUN rustup target add \
x86_64-unknown-linux-musl \
x86_64-unknown-linux-gnu \
wasm32-wasi \
armv7-unknown-linux-musleabihf \
arm-unknown-linux-musleabi \
aarch64-unknown-linux-musl \
aarch64-unknown-linux-gnu