mirror of
https://github.com/alibaba/higress.git
synced 2026-06-09 04:37:31 +08:00
fix: Use tinygo 0.25.0 (#309)
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
ARG BUILDER=higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/wasm-go-builder:go1.19-tinygo0.27.0-oras1.0.0
|
ARG BUILDER=higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/wasm-go-builder:go1.19-tinygo0.25.0-oras1.0.0
|
||||||
FROM $BUILDER as builder
|
FROM $BUILDER as builder
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,13 @@
|
|||||||
# - arch: amd64
|
# - arch: amd64
|
||||||
# base image: docker.io/ubuntu
|
# base image: docker.io/ubuntu
|
||||||
# go_url: https://golang.google.cn/dl/go1.20.1.linux-amd64.tar.gz"
|
# go_url: https://golang.google.cn/dl/go1.20.1.linux-amd64.tar.gz"
|
||||||
# tinygo_url: https://github.com/tinygo-org/tinygo/releases/download/v0.27.0/tinygo_0.27.0_amd64.deb
|
# tinygo_url: https://github.com/alibaba/higress/releases/download/v1.0.0-rc/higress-tinygo0.25.0.linux-amd64.tar.gz
|
||||||
# oras_url: https://github.com/oras-project/oras/releases/download/v1.0.0/oras_1.0.0_linux_amd64.tar.gz
|
# oras_url: https://github.com/oras-project/oras/releases/download/v1.0.0/oras_1.0.0_linux_amd64.tar.gz
|
||||||
#
|
#
|
||||||
# - arch: arm64
|
# - arch: arm64
|
||||||
# base image: docker.io/ubuntu
|
# base image: docker.io/ubuntu
|
||||||
# go_url: https://golang.google.cn/dl/go1.20.1.linux-arm64.tar.gz
|
# go_url: https://golang.google.cn/dl/go1.20.1.linux-arm64.tar.gz
|
||||||
# tinygo_url: https://github.com/tinygo-org/tinygo/releases/download/v0.27.0/tinygo_0.27.0_arm64.deb
|
# tinygo_url: https://github.com/alibaba/higress/releases/download/v1.0.0-rc/higress-tinygo0.25.0.linux-arm64.tar.gz
|
||||||
# oras_url: https://github.com/oras-project/oras/releases/download/v1.0.0/oras_1.0.0_linux_arm64.tar.gz
|
# oras_url: https://github.com/oras-project/oras/releases/download/v1.0.0/oras_1.0.0_linux_arm64.tar.gz
|
||||||
#
|
#
|
||||||
# - arch: armel
|
# - arch: armel
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
# - arch: armhf
|
# - arch: armhf
|
||||||
# base image: build your self
|
# base image: build your self
|
||||||
# go_url: https://golang.google.cn/dl/go1.20.1.linux-armv6l.tar.gz
|
# go_url: https://golang.google.cn/dl/go1.20.1.linux-armv6l.tar.gz
|
||||||
# tinygo_url: https://github.com/tinygo-org/tinygo/releases/download/v0.27.0/tinygo_0.27.0_armhf.deb
|
# tinygo_url: https://github.com/tinygo-org/tinygo/releases/download/v0.25.0/tinygo_0.25.0_armhf.deb
|
||||||
# oras_url: build your self
|
# oras_url: build your self
|
||||||
|
|
||||||
ARG BASE_IMAGE=docker.io/ubuntu
|
ARG BASE_IMAGE=docker.io/ubuntu
|
||||||
@@ -55,6 +55,8 @@ FROM $BASE_IMAGE
|
|||||||
ARG GO_VERSION
|
ARG GO_VERSION
|
||||||
ARG TINYGO_VERSION
|
ARG TINYGO_VERSION
|
||||||
ARG ORAS_VERSION
|
ARG ORAS_VERSION
|
||||||
|
ARG HIGRESS_VERSION
|
||||||
|
ARG USE_HIGRESS_TINYGO
|
||||||
|
|
||||||
LABEL go_version=$GO_VERSION tinygo_version=$TINYGO_VERSION oras_version=$ORAS_VERSION
|
LABEL go_version=$GO_VERSION tinygo_version=$TINYGO_VERSION oras_version=$ORAS_VERSION
|
||||||
|
|
||||||
@@ -62,39 +64,58 @@ RUN apt-get update \
|
|||||||
&& apt-get install -y wget build-essential \
|
&& apt-get install -y wget build-essential \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
|
||||||
RUN arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
|
RUN arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; \
|
||||||
go_url=; \
|
go_url=; \
|
||||||
tinygo_url=; \
|
tinygo_url=; \
|
||||||
go_version=${GO_VERSION:-1.19}; \
|
go_version=${GO_VERSION:-1.19}; \
|
||||||
tinygo_version=${TINYGO_VERSION:-0.27.0}; \
|
tinygo_version=${TINYGO_VERSION:-0.25.0}; \
|
||||||
oras_version=${ORAS_VERSION:-1.0.0}; \
|
oras_version=${ORAS_VERSION:-1.0.0}; \
|
||||||
|
higress_version=${HIGRESS_VERSION:-1.0.0-rc}; \
|
||||||
|
use_higress_tinygo=${USE_HIGRESS_TINYGO:-false}; \
|
||||||
echo "arch: '$arch'"; \
|
echo "arch: '$arch'"; \
|
||||||
echo "go go_version: '$go_version'"; \
|
echo "go go_version: '$go_version'"; \
|
||||||
echo "tinygo_version: '$tinygo_version'"; \
|
echo "tinygo_version: '$tinygo_version'"; \
|
||||||
echo "oras_version: '$oras_version'"; \
|
echo "oras_version: '$oras_version'"; \
|
||||||
|
echo "higress_version: '$higress_version'"; \
|
||||||
|
echo "use_higress_tinygo: '$use_higress_tinygo'"; \
|
||||||
case "$arch" in \
|
case "$arch" in \
|
||||||
'amd64') \
|
'amd64') \
|
||||||
go_url="https://golang.google.cn/dl/go$go_version.linux-amd64.tar.gz"; \
|
go_url="https://golang.google.cn/dl/go$go_version.linux-amd64.tar.gz"; \
|
||||||
|
if [ "$use_higress_tinygo" = "true" ]; \
|
||||||
|
then \
|
||||||
|
tinygo_url="https://github.com/alibaba/higress/releases/download/v$higress_version/higress-tinygo${tinygo_version}.linux-amd64.tar.gz"; \
|
||||||
|
else \
|
||||||
tinygo_url="https://github.com/tinygo-org/tinygo/releases/download/v$tinygo_version/tinygo_${tinygo_version}_amd64.deb"; \
|
tinygo_url="https://github.com/tinygo-org/tinygo/releases/download/v$tinygo_version/tinygo_${tinygo_version}_amd64.deb"; \
|
||||||
|
fi; \
|
||||||
oras_url="https://github.com/oras-project/oras/releases/download/v$oras_version/oras_${oras_version}_linux_amd64.tar.gz"; \
|
oras_url="https://github.com/oras-project/oras/releases/download/v$oras_version/oras_${oras_version}_linux_amd64.tar.gz"; \
|
||||||
;; \
|
;; \
|
||||||
'arm64') \
|
'arm64') \
|
||||||
go_url="https://golang.google.cn/dl/go$go_version.linux-arm64.tar.gz"; \
|
go_url="https://golang.google.cn/dl/go$go_version.linux-arm64.tar.gz"; \
|
||||||
|
if [ "$use_higress_tinygo" = "true" ]; \
|
||||||
|
then \
|
||||||
|
tinygo_url="https://github.com/alibaba/higress/releases/download/v$higress_version/higress-tinygo${tinygo_version}.linux-arm64.tar.gz"; \
|
||||||
|
else \
|
||||||
tinygo_url="https://github.com/tinygo-org/tinygo/releases/download/v$tinygo_version/tinygo_${tinygo_version}_arm64.deb"; \
|
tinygo_url="https://github.com/tinygo-org/tinygo/releases/download/v$tinygo_version/tinygo_${tinygo_version}_arm64.deb"; \
|
||||||
|
fi; \
|
||||||
oras_url="https://github.com/oras-project/oras/releases/download/v$oras_version/oras_${oras_version}_linux_arm64.tar.gz"; \
|
oras_url="https://github.com/oras-project/oras/releases/download/v$oras_version/oras_${oras_version}_linux_arm64.tar.gz"; \
|
||||||
;; \
|
;; \
|
||||||
*) echo >&2 "error: unsupported architecture '$arch' "; exit 1 ;; \
|
*) echo >&2 "error: unsupported architecture '$arch' "; exit 1 ;; \
|
||||||
esac; \
|
esac; \
|
||||||
echo "go_url: '$go_url'"; \
|
echo "go_url: '$go_url'"; \
|
||||||
echo "tinygo_url: '$tinygo_url'"; \
|
|
||||||
echo "oras_url: '$oras_url'"; \
|
|
||||||
wget -O go.tgz "$go_url" --progress=dot:giga; \
|
wget -O go.tgz "$go_url" --progress=dot:giga; \
|
||||||
wget -O tinygo.deb "$tinygo_url" --progress=dot:giga; \
|
|
||||||
wget -O oras.tgz "$oras_url" --progress=dot:giga; \
|
|
||||||
echo "Download complete"; \
|
|
||||||
rm -rf /usr/local/go && tar -C /usr/local -xzf go.tgz && rm -rf go.tgz; \
|
rm -rf /usr/local/go && tar -C /usr/local -xzf go.tgz && rm -rf go.tgz; \
|
||||||
|
echo "tinygo_url: '$tinygo_url'"; \
|
||||||
|
if [ "$use_higress_tinygo" = "true" ]; \
|
||||||
|
then \
|
||||||
|
wget -O tinygo.tgz "$tinygo_url" --progress=dot:giga; \
|
||||||
|
rm -rf /usr/local/tinygo && tar -C /usr/local -xzf tinygo.tgz && rm -rf tinygo.tgz; \
|
||||||
|
else \
|
||||||
|
wget -O tinygo.deb "$tinygo_url" --progress=dot:giga; \
|
||||||
|
dpkg -i tinygo.deb && rm -rf tinygo.deb; \
|
||||||
|
fi; \
|
||||||
|
echo "oras_url: '$oras_url'"; \
|
||||||
|
wget -O oras.tgz "$oras_url" --progress=dot:giga; \
|
||||||
tar -C /usr/local/bin -xzf oras.tgz && rm -rf oras.tgz; \
|
tar -C /usr/local/bin -xzf oras.tgz && rm -rf oras.tgz; \
|
||||||
dpkg -i tinygo.deb && rm -rf tinygo.deb
|
echo "done";
|
||||||
|
|
||||||
ENV PATH=$PATH:/usr/local/go/bin:/usr/local/bin
|
ENV PATH=$PATH:/usr/local/go/bin:/usr/local/tinygo/bin:/usr/local/bin
|
||||||
|
|||||||
@@ -1,12 +1,15 @@
|
|||||||
PLUGIN_NAME ?= hello-world
|
PLUGIN_NAME ?= hello-world
|
||||||
REGISTRY ?= higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/
|
REGISTRY ?= higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/
|
||||||
GO_VERSION ?= 1.19
|
GO_VERSION ?= 1.19
|
||||||
TINYGO_VERSION ?= 0.27.0
|
TINYGO_VERSION ?= 0.25.0
|
||||||
ORAS_VERSION ?= 1.0.0
|
ORAS_VERSION ?= 1.0.0
|
||||||
|
HIGRESS_VERSION ?= 1.0.0-rc
|
||||||
|
USE_HIGRESS_TINYGO ?= true
|
||||||
BUILDER ?= ${REGISTRY}wasm-go-builder:go${GO_VERSION}-tinygo${TINYGO_VERSION}-oras${ORAS_VERSION}
|
BUILDER ?= ${REGISTRY}wasm-go-builder:go${GO_VERSION}-tinygo${TINYGO_VERSION}-oras${ORAS_VERSION}
|
||||||
BUILD_TIME := $(shell date "+%Y%m%d-%H%M%S")
|
BUILD_TIME := $(shell date "+%Y%m%d-%H%M%S")
|
||||||
COMMIT_ID := $(shell git rev-parse --short HEAD 2>/dev/null)
|
COMMIT_ID := $(shell git rev-parse --short HEAD 2>/dev/null)
|
||||||
IMG ?= ${REGISTRY}${PLUGIN_NAME}:${BUILD_TIME}-${COMMIT_ID}
|
IMAGE_TAG = $(if $(strip $(PLUGIN_VERSION)),${PLUGIN_VERSION},${BUILD_TIME}-${COMMIT_ID})
|
||||||
|
IMG ?= ${REGISTRY}${PLUGIN_NAME}:${IMAGE_TAG}
|
||||||
GOPROXY := $(shell go env GOPROXY)
|
GOPROXY := $(shell go env GOPROXY)
|
||||||
|
|
||||||
.DEFAULT:
|
.DEFAULT:
|
||||||
@@ -18,10 +21,18 @@ build:
|
|||||||
--output extensions/${PLUGIN_NAME} \
|
--output extensions/${PLUGIN_NAME} \
|
||||||
.
|
.
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "image: ${IMG}"
|
|
||||||
@echo "output wasm file: extensions/${PLUGIN_NAME}/plugin.wasm"
|
@echo "output wasm file: extensions/${PLUGIN_NAME}/plugin.wasm"
|
||||||
|
|
||||||
build-push: build
|
build-image:
|
||||||
|
DOCKER_BUILDKIT=1 docker build --build-arg PLUGIN_NAME=${PLUGIN_NAME} \
|
||||||
|
--build-arg BUILDER=${BUILDER} \
|
||||||
|
-t ${IMG} \
|
||||||
|
--load \
|
||||||
|
.
|
||||||
|
@echo ""
|
||||||
|
@echo "image: ${IMG}"
|
||||||
|
|
||||||
|
build-push: build-image
|
||||||
docker push ${IMG}
|
docker push ${IMG}
|
||||||
|
|
||||||
# builder:
|
# builder:
|
||||||
@@ -39,6 +50,8 @@ builder:
|
|||||||
--build-arg GO_VERSION=$(GO_VERSION) \
|
--build-arg GO_VERSION=$(GO_VERSION) \
|
||||||
--build-arg TINYGO_VERSION=$(TINYGO_VERSION) \
|
--build-arg TINYGO_VERSION=$(TINYGO_VERSION) \
|
||||||
--build-arg ORAS_VERSION=$(ORAS_VERSION) \
|
--build-arg ORAS_VERSION=$(ORAS_VERSION) \
|
||||||
|
--build-arg HIGRESS_VERSION=$(HIGRESS_VERSION) \
|
||||||
|
--build-arg USE_HIGRESS_TINYGO=$(USE_HIGRESS_TINYGO) \
|
||||||
-f DockerfileBuilder \
|
-f DockerfileBuilder \
|
||||||
-t ${BUILDER} \
|
-t ${BUILDER} \
|
||||||
--push \
|
--push \
|
||||||
|
|||||||
Reference in New Issue
Block a user