From a3782e75b3168d89ce6f5d656df020e7975393bd Mon Sep 17 00:00:00 2001 From: thuanle Date: Tue, 12 Aug 2025 16:52:53 +0700 Subject: [PATCH] update base image --- .gitea/workflows/arch-docker-node.yml | 26 +++++++++++++++++++++++++- arch-docker-node.amd64.Dockerfile | 22 ---------------------- docker-node.Dockerfile | 19 +++++++++++++++++++ 3 files changed, 44 insertions(+), 23 deletions(-) delete mode 100644 arch-docker-node.amd64.Dockerfile create mode 100644 docker-node.Dockerfile diff --git a/.gitea/workflows/arch-docker-node.yml b/.gitea/workflows/arch-docker-node.yml index 3949029..fe41197 100644 --- a/.gitea/workflows/arch-docker-node.yml +++ b/.gitea/workflows/arch-docker-node.yml @@ -8,13 +8,14 @@ on: env: IMAGE_BASE: git.thuanle.me/public/base - IMAGE: arch-docker-node + IMAGE: docker-node jobs: build: strategy: matrix: arch: + - arm64 - amd64 runs-on: ${{ matrix.arch }} steps: @@ -40,3 +41,26 @@ jobs: . docker push ${{ env.IMAGE_BASE }}:${{ env.IMAGE }}-${{ matrix.arch }}-latest + + amend-manifest: + runs-on: ubuntu-latest + needs: [build] + steps: + - name: Login to Docker Registry + uses: docker/login-action@v3 + with: + registry: git.thuanle.me + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Push Docker manifest + run: | + echo "Delete existing manifest" + docker manifest rm {{ env.IMAGE_BASE }}:${{ env.IMAGE }}-latest || true + + echo "Create new manifest" + docker manifest create {{ env.IMAGE_BASE }}:${{ env.IMAGE }}-latest \ + ${{ env.IMAGE_BASE }}:${{ env.IMAGE }}-amd64-latest \ + ${{ env.IMAGE_BASE }}:${{ env.IMAGE }}-arm64-latest + + docker manifest push {{ env.IMAGE_BASE }}:${{ env.IMAGE }}-latest \ No newline at end of file diff --git a/arch-docker-node.amd64.Dockerfile b/arch-docker-node.amd64.Dockerfile deleted file mode 100644 index 016a698..0000000 --- a/arch-docker-node.amd64.Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -FROM archlinux:latest - -# Ngăn pacman hỏi khi cài -ENV DEBIAN_FRONTEND=noninteractive \ - DOCKER_HOST=unix:///var/run/docker.sock - -# Cập nhật và cài Docker CLI + Node.js + yarn -RUN pacman -Syu --noconfirm \ - docker \ - nodejs \ - npm \ - yarn \ - git \ - && pacman -Scc --noconfirm - -# Kiểm tra phiên bản -RUN docker --version && node --version && npm --version && yarn --version - -# Thư mục làm việc mặc định -WORKDIR /workspace - -CMD [ "bash" ] diff --git a/docker-node.Dockerfile b/docker-node.Dockerfile new file mode 100644 index 0000000..73b0a87 --- /dev/null +++ b/docker-node.Dockerfile @@ -0,0 +1,19 @@ +# Node LTS 24 trên Debian 12 (Bookworm) bản slim +FROM node:latest + +ENV DEBIAN_FRONTEND=noninteractive \ + DOCKER_HOST=unix:///var/run/docker.sock + +# Cài Docker CLI từ repo chính thức của Docker (lấy bản mới nhất) +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates curl gnupg git lsb-release \ + && install -m 0755 -d /etc/apt/keyrings \ + && curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc \ + && chmod a+r /etc/apt/keyrings/docker.asc \ + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \ + https://download.docker.com/linux/debian $(. /etc/os-release; echo $VERSION_CODENAME) stable" \ + > /etc/apt/sources.list.d/docker.list \ + && apt-get update \ + && apt-get install -y --no-install-recommends docker-ce-cli \ + && rm -rf /var/lib/apt/lists/* +