From d92ca7a5be58d1d1ebbcfc052ca66cf185569927 Mon Sep 17 00:00:00 2001 From: QXYang686 Date: Sat, 14 Feb 2026 16:15:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9E=84=E5=BB=BA=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 30 ++++++++++++++++++++++++++++++ system-setup.sh | 17 +++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 Makefile create mode 100644 system-setup.sh diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ff53e93 --- /dev/null +++ b/Makefile @@ -0,0 +1,30 @@ +# 切换到 bash +SHELL := /bin/bash + +# 定义变量 +REGISTRY_MARK ?= registry.yqxpro.com +REGISTRY ?= crpi-kbfsbvlqwt19zxum-vpc.cn-hongkong.personal.cr.aliyuncs.com/registry-yqxpro +GIT_SHA := $(shell git rev-parse --short HEAD) + +# 定义所有需要构建的子目录 +SUBDIRS = common-base develop-base universal-base + +# 默认目标:按顺序构建所有子目录 +all: $(SUBDIRS) + +# 定义每个子目录的构建规则 +$(SUBDIRS): + @echo "Building $@..." + @pushd $@ && \ + npx devcontainer build \ + --platform linux/amd64,linux/arm64 \ + --image-name devcontainers/$@ \ + --cache-to type=local,dest=$(HOME)/docker-buildcache/devcontainers-$@,mode=max \ + --cache-from type=local,src=$(HOME)/docker-buildcache/devcontainers-$@ && \ + docker tag devcontainers/$@ $(REGISTRY_MARK)/devcontainers/$@ && \ + docker tag devcontainers/$@ $(REGISTRY)/devcontainers-$@:$(GIT_SHA) && \ + docker push $(REGISTRY)/devcontainers-$@:$(GIT_SHA) && \ + popd + +# 伪目标声明 +.PHONY: all parallel clean $(SUBDIRS) diff --git a/system-setup.sh b/system-setup.sh new file mode 100644 index 0000000..a7381ed --- /dev/null +++ b/system-setup.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +export REGISTRY_USERNAME=qxyang686@qq.com +export REGISTRY_PASSWORD= +export REGISTRY_HOST=crpi-kbfsbvlqwt19zxum-vpc.cn-hongkong.personal.cr.aliyuncs.com +export REGISTRY=crpi-kbfsbvlqwt19zxum-vpc.cn-hongkong.personal.cr.aliyuncs.com/registry-yqxpro + +sudo apt update +sudo apt install -y npm git +curl -fsSL https://raw.githubusercontent.com/docker/docker-install/master/install.sh | sh +sudo usermod -aG docker $USER +docker buildx create --use --name multiarch-builder +docker login --username=$REGISTRY_USERNAME --password=$REGISTRY_PASSWORD $REGISTRY_HOST + +git clone https://gitea.yqxpro.com/QXYang686/devcontainers.git +cd devcontainers +npm install