From 986815306f83ab1f8b7512be0f4cebc4ce5e8ee4 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Mon, 29 Jul 2024 21:30:41 +0800 Subject: [PATCH] added more layers to arch builder image --- .gitea/workflows/build-arch-builder.yaml | 47 ++++++++++++++++++++-- arch-builder/Dockerfile | 50 ++++++++++++++---------- 2 files changed, 72 insertions(+), 25 deletions(-) diff --git a/.gitea/workflows/build-arch-builder.yaml b/.gitea/workflows/build-arch-builder.yaml index 84ec914..51767e3 100644 --- a/.gitea/workflows/build-arch-builder.yaml +++ b/.gitea/workflows/build-arch-builder.yaml @@ -35,7 +35,7 @@ jobs: cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:buildx target: base - - name: Build and push arch-builder rootless images + name: Build and push arch-builder kernel images uses: docker/build-push-action@v6 with: context: "{{defaultContext}}:arch-builder" @@ -43,8 +43,47 @@ jobs: push: true pull: true tags: | - "gitea.woggioni.net/woggioni/arch-builder:latest" - "gitea.woggioni.net/woggioni/arch-builder:rootless" + "gitea.woggioni.net/woggioni/arch-builder:kernel" cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:buildx cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:buildx - target: rootless + target: kernel + - + name: Build and push arch-builder rust images + uses: docker/build-push-action@v6 + with: + context: "{{defaultContext}}:arch-builder" + platforms: linux/amd64 + push: true + pull: true + tags: | + "gitea.woggioni.net/woggioni/arch-builder:rust" + cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:buildx + cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:buildx + target: rust + - + name: Build and push arch-builder rust full images + uses: docker/build-push-action@v6 + with: + context: "{{defaultContext}}:arch-builder" + platforms: linux/amd64 + push: true + pull: true + tags: | + "gitea.woggioni.net/woggioni/arch-builder:rust-full" + cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:buildx + cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:buildx + target: rust-full + - + name: Build and push arch-builder rust images + uses: docker/build-push-action@v6 + with: + context: "{{defaultContext}}:arch-builder" + platforms: linux/amd64 + push: true + pull: true + tags: | + "gitea.woggioni.net/woggioni/arch-builder:rust-full-rootless" + "gitea.woggioni.net/woggioni/arch-builder:latest" + cache-from: type=registry,ref=gitea.woggioni.net/woggioni/arch-builder:buildx + cache-to: type=registry,mode=max,compression=zstd,image-manifest=true,oci-mediatypes=true,ref=gitea.woggioni.net/woggioni/arch-builder:buildx + target: rust-full-rootless diff --git a/arch-builder/Dockerfile b/arch-builder/Dockerfile index 2c2a623..c3bced4 100644 --- a/arch-builder/Dockerfile +++ b/arch-builder/Dockerfile @@ -32,11 +32,24 @@ 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 \ bc \ cpio \ gettext \ @@ -47,33 +60,30 @@ RUN pacman -S --noconfirm --needed \ python-pip \ python-build \ python-wheel \ - maven \ - tar \ - xz \ - llvm \ graphviz \ imagemagick \ python-sphinx \ python-yaml \ openssh \ - texlive-latexextra \ - ccache \ - lzop \ - lz4 \ - bzip2 \ - gzip \ - upx \ - docker \ - clang \ - hidapi \ - protobuf \ - jdk21-openjdk + texlive-latexextra -FROM base as rootless -RUN useradd luser -G users -u 1000 -s /bin/bash -m -d /home/luser +FROM base AS rust +RUN mkdir -p /etc/cargo +COPY config.toml /etc/cargo/ +RUN pacman -S --noconfirm --needed \ + rustup \ + 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 ln -s /etc/cargo/config.toml .cargo/config.toml RUN rustup toolchain install stable-x86_64-unknown-linux-gnu RUN rustup target add \ x86_64-unknown-linux-musl \ @@ -83,7 +93,5 @@ RUN rustup target add \ arm-unknown-linux-musleabi \ aarch64-unknown-linux-musl \ aarch64-unknown-linux-gnu -RUN mkdir .cargo -COPY config.toml .cargo/