Skip to content

Commit c9cc4c0

Browse files
committed
Merge branch 'master' into feat/migrate-oss-to-cos
2 parents 61c092d + a7df6f9 commit c9cc4c0

File tree

6 files changed

+149
-50
lines changed

6 files changed

+149
-50
lines changed

.circleci/config.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,64 @@ jobs:
5353
exit 125
5454
fi
5555
56+
build-and-push-apisix-base-dev-arm:
57+
machine:
58+
image: ubuntu-2004:202101-01
59+
resource_class: arm.medium
60+
61+
steps:
62+
- checkout
63+
- run:
64+
name: submodule
65+
command: |
66+
git submodule sync
67+
git submodule update --init
68+
69+
- run:
70+
name: Build and Push Docker Image
71+
command: |
72+
echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
73+
docker buildx build -t api7/apisix-base:dev-arm64 --push \
74+
--build-arg VERSION=dev --build-arg BUILD_LATEST=latest \
75+
-f ./dockerfiles/Dockerfile.apisix-base.deb .
76+
77+
build-and-push-apisix-base-dev-x86:
78+
machine:
79+
image: ubuntu-2004:202101-01
80+
resource_class: medium
81+
82+
steps:
83+
- checkout
84+
- run:
85+
name: submodule
86+
command: |
87+
git submodule sync
88+
git submodule update --init
89+
90+
- run:
91+
name: Build and Push Docker Image
92+
command: |
93+
echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
94+
docker buildx build -t api7/apisix-base:dev-x86_64 --push \
95+
--build-arg VERSION=dev --build-arg BUILD_LATEST=latest \
96+
-f ./dockerfiles/Dockerfile.apisix-base.deb .
97+
98+
upload-manifest:
99+
docker:
100+
- image: cimg/python:3.8.2
101+
steps:
102+
- checkout
103+
- deploy:
104+
name: "Upload manifest to registry"
105+
command: |
106+
set -eu
107+
export DOCKER_CLI_EXPERIMENTAL=enabled
108+
echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
109+
docker manifest create api7/apisix-base:dev \
110+
api7/apisix-base:dev-arm64 \
111+
api7/apisix-base:dev-x86_64
112+
docker manifest push api7/apisix-base:dev
113+
56114
# Invoke jobs via workflows
57115
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
58116
workflows:
@@ -62,3 +120,18 @@ workflows:
62120
filters:
63121
branches:
64122
only: master
123+
build-and-push-apisix-base-dev:
124+
triggers:
125+
- schedule:
126+
cron: "0 0 * * *"
127+
filters:
128+
branches:
129+
only:
130+
- master
131+
jobs:
132+
- build-and-push-apisix-base-dev-arm
133+
- build-and-push-apisix-base-dev-x86
134+
- upload-manifest:
135+
requires:
136+
- build-and-push-apisix-base-dev-arm
137+
- build-and-push-apisix-base-dev-x86

.github/workflows/package-apisix-base-deb-ubuntu20.04.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
runs-on: ubuntu-latest
2020
timeout-minutes: 60
2121
env:
22-
BUILD_APISIX_BASE_VERSION: 1.19.3.2.0
22+
BUILD_APISIX_BASE_VERSION: 1.21.4.1.0
2323
steps:
2424
- uses: actions/checkout@v2
2525

build-apisix-base.sh

Lines changed: 43 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ set -x
55
version=${version:-0.0.0}
66

77
if ([ $# -gt 0 ] && [ "$1" == "latest" ]) || [ "$version" == "latest" ]; then
8-
ngx_multi_upstream_module_ver=""
9-
mod_dubbo_ver=""
10-
apisix_nginx_module_ver=""
11-
wasm_nginx_module_ver=""
12-
lua_var_nginx_module_ver=""
8+
ngx_multi_upstream_module_ver="master"
9+
mod_dubbo_ver="master"
10+
apisix_nginx_module_ver="main"
11+
wasm_nginx_module_ver="main"
12+
lua_var_nginx_module_ver="master"
1313
debug_args="--with-debug"
1414
OR_PREFIX=${OR_PREFIX:="/usr/local/openresty-debug"}
1515
else
16-
ngx_multi_upstream_module_ver="-b 1.0.1"
17-
mod_dubbo_ver="-b 1.0.2"
18-
apisix_nginx_module_ver="-b 1.8.0"
19-
wasm_nginx_module_ver="-b 0.6.0"
20-
lua_var_nginx_module_ver="-b v0.5.2"
16+
ngx_multi_upstream_module_ver="1.1.0"
17+
mod_dubbo_ver="1.0.2"
18+
apisix_nginx_module_ver="1.9.0"
19+
wasm_nginx_module_ver="0.6.1"
20+
lua_var_nginx_module_ver="v0.5.2"
2121
debug_args=${debug_args:-}
2222
OR_PREFIX=${OR_PREFIX:="/usr/local/openresty"}
2323
fi
@@ -27,54 +27,59 @@ repo=$(basename "$prev_workdir")
2727
workdir=$(mktemp -d)
2828
cd "$workdir" || exit 1
2929

30-
or_ver="1.19.9.1"
30+
or_ver="1.21.4.1"
3131
wget --no-check-certificate https://openresty.org/download/openresty-${or_ver}.tar.gz
3232
tar -zxvpf openresty-${or_ver}.tar.gz > /dev/null
3333

3434
if [ "$repo" == ngx_multi_upstream_module ]; then
35-
cp -r "$prev_workdir" .
35+
cp -r "$prev_workdir" ./ngx_multi_upstream_module-${ngx_multi_upstream_module_ver}
3636
else
37-
git clone --depth=1 $ngx_multi_upstream_module_ver \
38-
https://github.com/api7/ngx_multi_upstream_module.git
37+
git clone --depth=1 -b $ngx_multi_upstream_module_ver \
38+
https://github.com/api7/ngx_multi_upstream_module.git \
39+
ngx_multi_upstream_module-${ngx_multi_upstream_module_ver}
3940
fi
4041

4142
if [ "$repo" == mod_dubbo ]; then
42-
cp -r "$prev_workdir" .
43+
cp -r "$prev_workdir" ./mod_dubbo-${mod_dubbo_ver}
4344
else
44-
git clone --depth=1 $mod_dubbo_ver \
45-
https://github.com/api7/mod_dubbo.git
45+
git clone --depth=1 -b $mod_dubbo_ver \
46+
https://github.com/api7/mod_dubbo.git \
47+
mod_dubbo-${mod_dubbo_ver}
4648
fi
4749

4850
if [ "$repo" == apisix-nginx-module ]; then
49-
cp -r "$prev_workdir" .
51+
cp -r "$prev_workdir" ./apisix-nginx-module-${apisix_nginx_module_ver}
5052
else
51-
git clone --depth=1 $apisix_nginx_module_ver \
52-
https://github.com/api7/apisix-nginx-module.git
53+
git clone --depth=1 -b $apisix_nginx_module_ver \
54+
https://github.com/api7/apisix-nginx-module.git \
55+
apisix-nginx-module-${apisix_nginx_module_ver}
5356
fi
5457

5558
if [ "$repo" == wasm-nginx-module ]; then
56-
cp -r "$prev_workdir" .
59+
cp -r "$prev_workdir" ./wasm-nginx-module-${wasm_nginx_module_ver}
5760
else
58-
git clone --depth=1 $wasm_nginx_module_ver \
59-
https://github.com/api7/wasm-nginx-module.git
61+
git clone --depth=1 -b $wasm_nginx_module_ver \
62+
https://github.com/api7/wasm-nginx-module.git \
63+
wasm-nginx-module-${wasm_nginx_module_ver}
6064
fi
6165

6266
if [ "$repo" == lua-var-nginx-module ]; then
63-
cp -r "$prev_workdir" .
67+
cp -r "$prev_workdir" ./lua-var-nginx-module-${lua_var_nginx_module_ver}
6468
else
65-
git clone --depth=1 $lua_var_nginx_module_ver \
66-
https://github.com/api7/lua-var-nginx-module
69+
git clone --depth=1 -b $lua_var_nginx_module_ver \
70+
https://github.com/api7/lua-var-nginx-module \
71+
lua-var-nginx-module-${lua_var_nginx_module_ver}
6772
fi
6873

69-
cd ngx_multi_upstream_module || exit 1
74+
cd ngx_multi_upstream_module-${ngx_multi_upstream_module_ver} || exit 1
7075
./patch.sh ../openresty-${or_ver}
7176
cd ..
7277

73-
cd apisix-nginx-module/patch || exit 1
78+
cd apisix-nginx-module-${apisix_nginx_module_ver}/patch || exit 1
7479
./patch.sh ../../openresty-${or_ver}
7580
cd ../..
7681

77-
cd wasm-nginx-module || exit 1
82+
cd wasm-nginx-module-${wasm_nginx_module_ver} || exit 1
7883
./install-wasmtime.sh
7984
cd ..
8085

@@ -88,13 +93,13 @@ cd openresty-${or_ver} || exit 1
8893
--with-cc-opt="-DAPISIX_BASE_VER=$version $cc_opt" \
8994
--with-ld-opt="-Wl,-rpath,$OR_PREFIX/wasmtime-c-api/lib $ld_opt" \
9095
$debug_args \
91-
--add-module=../mod_dubbo \
92-
--add-module=../ngx_multi_upstream_module \
93-
--add-module=../apisix-nginx-module \
94-
--add-module=../apisix-nginx-module/src/stream \
95-
--add-module=../apisix-nginx-module/src/meta \
96-
--add-module=../wasm-nginx-module \
97-
--add-module=../lua-var-nginx-module \
96+
--add-module=../mod_dubbo-${mod_dubbo_ver} \
97+
--add-module=../ngx_multi_upstream_module-${ngx_multi_upstream_module_ver} \
98+
--add-module=../apisix-nginx-module-${apisix_nginx_module_ver} \
99+
--add-module=../apisix-nginx-module-${apisix_nginx_module_ver}/src/stream \
100+
--add-module=../apisix-nginx-module-${apisix_nginx_module_ver}/src/meta \
101+
--add-module=../wasm-nginx-module-${wasm_nginx_module_ver} \
102+
--add-module=../lua-var-nginx-module-${lua_var_nginx_module_ver} \
98103
--with-poll_module \
99104
--with-pcre-jit \
100105
--without-http_rds_json_module \
@@ -129,10 +134,10 @@ make -j`nproc`
129134
sudo make install
130135
cd ..
131136

132-
cd apisix-nginx-module || exit 1
137+
cd apisix-nginx-module-${apisix_nginx_module_ver} || exit 1
133138
sudo OPENRESTY_PREFIX="$OR_PREFIX" make install
134139
cd ..
135140

136-
cd wasm-nginx-module || exit 1
141+
cd wasm-nginx-module-${wasm_nginx_module_ver} || exit 1
137142
sudo OPENRESTY_PREFIX="$OR_PREFIX" make install
138143
cd ..
Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
ARG IMAGE_BASE="ubuntu"
2-
ARG IMAGE_TAG="20.04"
1+
ARG IMAGE_BASE="debian"
2+
ARG IMAGE_TAG="bullseye-slim"
33

4-
FROM ${IMAGE_BASE}:${IMAGE_TAG}
4+
FROM ${IMAGE_BASE}:${IMAGE_TAG} as build
55

66
COPY ./utils/build-common.sh /tmp/build-common.sh
77
COPY build-apisix-base.sh /tmp/build-apisix-base.sh
@@ -12,11 +12,18 @@ WORKDIR /tmp
1212
ARG VERSION
1313
ARG IMAGE_BASE
1414
ARG IMAGE_TAG
15+
ARG BUILD_LATEST
1516

1617
ENV IMAGE_BASE=${IMAGE_BASE}
1718
ENV IMAGE_TAG=${IMAGE_TAG}
1819
ENV version=${VERSION}
20+
ENV build_latest=${BUILD_LATEST:-}
1921

20-
RUN ./build-common.sh build_apisix_base_deb \
22+
RUN ./build-common.sh build_apisix_base_deb ${build_latest} \
2123
# determine dist and write it into /tmp/dist file
2224
&& /tmp/determine-dist.sh
25+
26+
FROM ${IMAGE_BASE}:${IMAGE_TAG} as prod
27+
28+
COPY --from=build /usr/local /usr/local
29+
COPY --from=build /tmp/dist /tmp/dist

package-apisix-base.sh

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@ fi
1313

1414
ARCH=${ARCH:-`(uname -m | tr '[:upper:]' '[:lower:]')`}
1515

16-
openresty_zlib_version="1.2.11-3"
17-
openresty_openssl111_version="1.1.1n"
18-
openresty_pcre_version="8.44-1"
16+
openresty_zlib_version="1.2.12-1"
17+
openresty_openssl111_version="1.1.1n-1"
18+
openresty_pcre_version="8.45-1"
1919
if [ "$PACKAGE_TYPE" == "deb" ]; then
20-
openresty_zlib_version="1.2.11-3~focal1"
21-
openresty_pcre_version="8.44-1~focal1"
20+
pkg_suffix="focal1"
21+
openresty_zlib_version="$openresty_zlib_version~$pkg_suffix"
22+
openresty_openssl111_version="$openresty_openssl111_version~$pkg_suffix"
23+
openresty_pcre_version="$openresty_pcre_version~$pkg_suffix"
2224
fi
2325

2426
fpm -f -s dir -t "$PACKAGE_TYPE" \

utils/build-common.sh

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,24 @@ build_apisix_base_deb() {
3939
DEBIAN_FRONTEND=noninteractive apt-get install -y sudo git libreadline-dev lsb-release libssl-dev perl build-essential
4040
DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends wget gnupg ca-certificates
4141
wget -O - https://openresty.org/package/pubkey.gpg | apt-key add -
42-
echo "deb http://openresty.org/package/${arch_path}ubuntu $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/openresty.list
42+
43+
if [[ $IMAGE_BASE == "ubuntu" ]]; then
44+
echo "deb http://openresty.org/package/${arch_path}ubuntu $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/openresty.list
45+
fi
46+
47+
if [[ $IMAGE_BASE == "debian" ]]; then
48+
echo "deb http://openresty.org/package/${arch_path}debian $(lsb_release -sc) openresty" | tee /etc/apt/sources.list.d/openresty.list
49+
fi
50+
4351
DEBIAN_FRONTEND=noninteractive apt-get update
4452
DEBIAN_FRONTEND=noninteractive apt-get install -y openresty-openssl111-dev openresty-pcre-dev openresty-zlib-dev
4553

4654
export_openresty_variables
47-
${BUILD_PATH}/build-apisix-base.sh
55+
# fix OR_PREFIX
56+
if [[ $build_latest == "latest" ]]; then
57+
unset OR_PREFIX
58+
fi
59+
${BUILD_PATH}/build-apisix-base.sh ${build_latest}
4860
}
4961

5062
build_apisix_base_apk() {

0 commit comments

Comments
 (0)