diff --git a/hack/contrib/docker/api/Dockerfile b/hack/contrib/docker/api/Dockerfile
index f2deb181738c5ea15a70bdd19cd46796c48a84a4..593a0d375018804d84c21ef1540a760206140980 100644
--- a/hack/contrib/docker/api/Dockerfile
+++ b/hack/contrib/docker/api/Dockerfile
@@ -1,5 +1,5 @@
 ARG BASE_IMAGE_VERSION
-FROM debian:bullseye-slim
+FROM goodrainapps/alpine:${BASE_IMAGE_VERSION}
 ARG RELEASE_DESC
 
 ADD rainbond-api /run/rainbond-api
diff --git a/hack/contrib/docker/buildstack/Dockerfile b/hack/contrib/docker/buildstack/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..fc07253d508931957792d93ff4b115b22fcedbd9
--- /dev/null
+++ b/hack/contrib/docker/buildstack/Dockerfile
@@ -0,0 +1,13 @@
+ARG GO_VERSION
+FROM golang:${GO_VERSION}
+
+RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
+    && apk --no-cache add gcc libc-dev tzdata ca-certificates libc6-compat libgcc libstdc++ g++
+    
+RUN apk add --no-cache binutils-gold
+
+WORKDIR /go
+
+    
+
+
diff --git a/hack/contrib/docker/chaos/Dockerfile b/hack/contrib/docker/chaos/Dockerfile
index ddb5cbf6fad571f914ccc0435bf3edde6b9f77e8..0183acf76935428f93333e32146dd00f0e3ad317 100644
--- a/hack/contrib/docker/chaos/Dockerfile
+++ b/hack/contrib/docker/chaos/Dockerfile
@@ -1,12 +1,11 @@
 ARG BASE_IMAGE_VERSION
-FROM debian:bullseye-slim
+FROM goodrainapps/alpine:${BASE_IMAGE_VERSION}
 ARG RELEASE_DESC
 
 
 ENV WORK_DIR=/run
 
-RUN apt update \
-    && apt install openssl openssh-client subversion -y 
+RUN apk add -no-cacahe  openssl openssh-client subversion -y 
 COPY rainbond-chaos entrypoint.sh /run/
 COPY export-app /src/export-app
 
diff --git a/hack/contrib/docker/eventlog/Dockerfile b/hack/contrib/docker/eventlog/Dockerfile
index 53bd5de382316de042350bc3651cf8c4a11fd19c..629f839a621f6f2f063a412b6778b3d5f37a7b86 100644
--- a/hack/contrib/docker/eventlog/Dockerfile
+++ b/hack/contrib/docker/eventlog/Dockerfile
@@ -1,4 +1,5 @@
-FROM goodrainapps/alpine:latest
+ARG BASE_IMAGE_VERSION
+FROM goodrainapps/alpine:${BASE_IMAGE_VERSION}
 ARG RELEASE_DESC
 RUN apk --no-cache add libstdc++ ca-certificates openssl openssl-dev
 
diff --git a/hack/contrib/docker/eventlog/Dockerfile.arm b/hack/contrib/docker/eventlog/Dockerfile.arm
index 5065380bc747e5bbc225b68e331ca6352c0d05d7..ac58d01dfec778a8ca0c95e8e0ef2d15b5907fc3 100644
--- a/hack/contrib/docker/eventlog/Dockerfile.arm
+++ b/hack/contrib/docker/eventlog/Dockerfile.arm
@@ -1,8 +1,8 @@
-FROM debian:buster
-      
-RUN apt update && apt install -y ca-certificates openssl libssl-dev libsodium-dev libpgm-dev libnorm-dev libgssapi-krb5-2 wget
+FROM goodrainapps/alpine:3.16
+ARG RELEASE_DESC
+RUN apk add --no-cache libstdc++ ca-certificates openssl openssl-dev zeromq-dev
     
-RUN wget https://rainbond-pkg.oss-cn-shanghai.aliyuncs.com/5.3-arm/libzmq.so.5 -O /usr/lib/libzmq.so.5
+#RUN wget https://rainbond-pkg.oss-cn-shanghai.aliyuncs.com/5.3-arm/libzmq.so.5 -O /usr/lib/libzmq.so.5
     
 COPY rainbond-eventlog /run/rainbond-eventlog
 ADD entrypoint.sh /run/entrypoint.sh
diff --git a/hack/contrib/docker/eventlog/build/Dockerfile.arm b/hack/contrib/docker/eventlog/build/Dockerfile.arm
index 5bd43b4f234e665c5f5eb8eed6ad91165b605b39..a276ca0feee620018fe075eee601090420e70dc9 100644
--- a/hack/contrib/docker/eventlog/build/Dockerfile.arm
+++ b/hack/contrib/docker/eventlog/build/Dockerfile.arm
@@ -1,6 +1,7 @@
-FROM golang:1.17
+FROM golang:1.17-alpine3.16
 
-RUN apt update && apt-get install -y libzmq3-dev
+#RUN apt update && apt-get install -y libzmq3-dev
+RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk --no-cache add zeromq-dev gcc libc-dev
 
 WORKDIR /go
 
diff --git a/hack/contrib/docker/grctl/Dockerfile b/hack/contrib/docker/grctl/Dockerfile
index 1faf4e2dd4cc5636ec46d01a29428891850ec51c..1cf944bd2f8fbd57498dcbd9c46fc6fd30e5fd67 100644
--- a/hack/contrib/docker/grctl/Dockerfile
+++ b/hack/contrib/docker/grctl/Dockerfile
@@ -1,5 +1,5 @@
 ARG BASE_IMAGE_VERSION
-FROM debian:bullseye-slim
+FROM goodrainapps/alpine:${BASE_IMAGE_VERSION}
 ARG RELEASE_DESC
 COPY . /run
 RUN chmod +x /run/rainbond-grctl /run/entrypoint.sh
diff --git a/hack/contrib/docker/mq/Dockerfile b/hack/contrib/docker/mq/Dockerfile
index 86dca4a0dd1da4bf4ac367062a0d2cfce2fd51f3..f1aee12fbcfd96bd77d0c7298dcdbc8d7d75581e 100644
--- a/hack/contrib/docker/mq/Dockerfile
+++ b/hack/contrib/docker/mq/Dockerfile
@@ -1,5 +1,5 @@
 ARG BASE_IMAGE_VERSION
-FROM debian:bullseye-slim
+FROM goodrainapps/alpine:${BASE_IMAGE_VERSION}
 ARG RELEASE_DESC
 COPY rainbond-mq /run/rainbond-mq
 ADD entrypoint.sh /run/entrypoint.sh
diff --git a/hack/contrib/docker/node/Dockerfile b/hack/contrib/docker/node/Dockerfile
index 6be87eac42054dfdf16a78fce45271fa4ca5688c..719e8808b3169a3b678659868ad9b49c810593e9 100644
--- a/hack/contrib/docker/node/Dockerfile
+++ b/hack/contrib/docker/node/Dockerfile
@@ -1,5 +1,5 @@
 ARG BASE_IMAGE_VERSION
-FROM debian:bullseye-slim
+FROM goodrainapps/alpine:${BASE_IMAGE_VERSION}
 
 ARG RELEASE_DESC
 ADD . /run
diff --git a/hack/contrib/docker/webcli/Dockerfile b/hack/contrib/docker/webcli/Dockerfile
index e6cfdaf01c387732bbce2f42c228dfa3d0ca1fb5..933969c6f9eb1cd3cfbd55534e6faf0541a9a7f5 100644
--- a/hack/contrib/docker/webcli/Dockerfile
+++ b/hack/contrib/docker/webcli/Dockerfile
@@ -1,5 +1,5 @@
 ARG BASE_IMAGE_VERSION
-FROM debian:bullseye-slim
+FROM goodrainapps/alpine:${BASE_IMAGE_VERSION}
 ARG RELEASE_DESC
 ENV PORT 7070
 
diff --git a/hack/contrib/docker/worker/Dockerfile b/hack/contrib/docker/worker/Dockerfile
index 7ce651c9e746ebcdfd5921d0722ada2e73d90f31..0e16506138593fef675054951903f07d3cfbde06 100644
--- a/hack/contrib/docker/worker/Dockerfile
+++ b/hack/contrib/docker/worker/Dockerfile
@@ -1,5 +1,5 @@
 ARG BASE_IMAGE_VERSION
-FROM debian:bullseye-slim
+FROM goodrainapps/alpine:${BASE_IMAGE_VERSION}
 ARG RELEASE_DESC
 COPY rainbond-worker /run/rainbond-worker
 COPY entrypoint.sh /run/entrypoint.sh
diff --git a/release.sh b/release.sh
index 5d2e115a27c4df34dc11541a26ec8e835450933e..50674b91617a8994695fb61e3a49a698c0fc876a 100755
--- a/release.sh
+++ b/release.sh
@@ -6,9 +6,16 @@ WORK_DIR=/go/src/github.com/goodrain/rainbond
 BASE_NAME=rainbond
 IMAGE_BASE_NAME=${IMAGE_NAMESPACE:-'rainbond'}
 DOMESTIC_NAMESPACE=${DOMESTIC_NAMESPACE:-'goodrain'}
-GOARCH=${BUILD_GOARCH:-'amd64'}
 
-GO_VERSION=1.17
+if [ "$BUILD_GOARCH" ]; then
+    GOARCH=${BUILD_GOARCH}
+elif [ $(arch) = "aarch64" ] || [ $(arch) = "arm64" ]; then
+    GOARCH=arm64
+elif [ $(arch) = "x86_64" ]; then
+    GOARCH=amd64
+fi
+
+GO_VERSION=1.17-alpine3.16
 
 GOPROXY=${GOPROXY:-'https://goproxy.cn'}
 
@@ -46,21 +53,30 @@ build::binary() {
 	local go_mod_cache="${home}/.cache"
 	local OUTPATH="./_output/binary/$GOOS/${BASE_NAME}-$1"
 	local DOCKER_PATH="./hack/contrib/docker/$1"
-	local build_image="golang:${GO_VERSION}"
-	local build_args="-w -s -X github.com/goodrain/rainbond/cmd.version=${release_desc}"
+	local BUILD_STACK_PATH="./hack/contrib/docker/buildstack"
+	local build_image="goodrain.me/golang-gcc-buildstack:${GO_VERSION}"
 	local build_dir="./cmd/$1"
 	local build_tag=""
 	local DOCKERFILE_BASE=${BUILD_DOCKERFILE_BASE:-'Dockerfile'}
+
+    if [ "$GOARCH" = "amd64" ]; then
+	    local build_args="-w -s -X github.com/goodrain/rainbond/cmd.version=${release_desc}"
+	elif [ "$GOARCH" = "arm64" ]; then
+	    local build_args="-w -s -linkmode external -extldflags '-static' -X github.com/goodrain/rainbond/cmd.version=${release_desc}"
+    fi
+
 	if [ -f "${DOCKER_PATH}/ignorebuild" ]; then
 		return
 	fi
+    docker build -t goodrain.me/golang-gcc-buildstack:${GO_VERSION} --build-arg GO_VERSION="${GO_VERSION}" -f "${BUILD_STACK_PATH}/${DOCKERFILE_BASE}" "${BUILD_STACK_PATH}"
+	
 	CGO_ENABLED=1
 	if [ "$1" = "eventlog" ]; then
 		if [ "$GOARCH" = "arm64" ]; then
 			DOCKERFILE_BASE="Dockerfile.arm"
 		fi
-		docker build -t goodraim.me/event-build:v1 -f "${DOCKER_PATH}/build/${DOCKERFILE_BASE}" "${DOCKER_PATH}/build/"
-		build_image="goodraim.me/event-build:v1"
+		docker build -t goodrain.me/event-build:v1 -f "${DOCKER_PATH}/build/${DOCKERFILE_BASE}" "${DOCKER_PATH}/build/"
+		build_image="goodrain.me/event-build:v1"
 	elif [ "$1" = "chaos" ]; then
 		build_dir="./cmd/builder"
 	elif [ "$1" = "gateway" ]; then
@@ -68,7 +84,7 @@ build::binary() {
 	elif [ "$1" = "monitor" ]; then
 		CGO_ENABLED=0
 	fi
-	docker run --rm -e CGO_ENABLED=${CGO_ENABLED} -e GOPROXY=${GOPROXY} -e GOOS="${GOOS}" -v "${go_mod_cache}":/go/pkg/mod -v "$(pwd)":${WORK_DIR} -w ${WORK_DIR} ${build_image} go build -ldflags "${build_args}" -tags "${build_tag}" -o "${OUTPATH}" ${build_dir}
+	docker run --rm -e CGO_ENABLED=${CGO_ENABLED} -e GOARCH=${GOARCH} -e GOPROXY=${GOPROXY} -e GOOS="${GOOS}" -v "${go_mod_cache}":/go/pkg/mod -v "$(pwd)":${WORK_DIR} -w ${WORK_DIR} ${build_image} go build -ldflags "${build_args}" -tags "${build_tag}" -o "${OUTPATH}" ${build_dir}
 	if [ "$GOOS" = "windows" ]; then
 		mv "$OUTPATH" "${OUTPATH}.exe"
 	fi
@@ -78,7 +94,7 @@ build::image() {
 	local OUTPATH="./_output/binary/$GOOS/${BASE_NAME}-$1"
 	local build_image_dir="./_output/image/$1/"
 	local source_dir="./hack/contrib/docker/$1"
-	local BASE_IMAGE_VERSION=${BUILD_BASE_IMAGE_VERSION:-'latest'}
+	local BASE_IMAGE_VERSION=${BUILD_BASE_IMAGE_VERSION:-'3.16'}
 	local DOCKERFILE_BASE=${BUILD_DOCKERFILE_BASE:-'Dockerfile'}
 	mkdir -p "${build_image_dir}"
 	chmod 777 "${build_image_dir}"