Prerequisites
- Docker
- fpm
- Make
- rpm (if your host system is Ubuntu, should install rpmbuild by
sudo apt-get install rpm
)
Parameters
Parameter | Required | Description | Example |
---|---|---|---|
type | True | it can be deb or rpm or apk |
type=rpm |
app | True | it can be apisix , dashboard or apisix-base |
app=apisix |
checkout | True | the code branch or tag of the app which you want to package | checkout=2.1 or checkout=v2.1 |
version | True | the version of the package | version=10.10 |
local_code_path | False | the path of local code diretory of apisix or dashboard, which depends on the app parameter | local_code_path=/home/vagrant/apisix |
openresty | False | the openresty type that apisix depends on, its value can be openresty or apisix-base , the default is openresty |
openresty=apisix-base |
artifact | False | the final name of the generated artifact, if not specified, this will be the same as app |
artifact=apisixty |
image_base | False | the environment for packaging, if type is rpm the default image_base is centos , if type is deb the default image_base is ubuntu |
image_base=centos |
image_tag | False | the environment for packaging, it's value can be 16.04|18.04|20.04|6|7|8 , if type is rpm the default image_tag is 7 , if type is deb the default image_tag is 20.04 |
image_tag=7 |
buildx | False | if True , use buildx to build docker images, which may speed up GitHub Actions |
buildx=True |
Example
Packaging a Centos 7 package of Apache APISIX
make package type=rpm app=apisix version=2.2 checkout=2.2 image_base=centos image_tag=7
ls output/
apisix-2.2-0.el7.x86_64.rpm
or just leave image_base
and image_tag
as the default values.
make package type=rpm app=apisix version=2.2 checkout=2.2
ls output/
apisix-2.2-0.el7.x86_64.rpm
Packaging a Centos 8 package of Apache APISIX
make package type=rpm app=apisix version=2.2 checkout=2.2 image_base=centos image_tag=8
ls output/
apisix-2.2-0.el8.x86_64.rpm
Packaging an Ubuntu 20.04 package of Apache APISIX
make package type=deb app=apisix version=2.2 checkout=2.2
ls output/
apisix_2.2-0~ubuntu20.04_amd64.deb
Packaging a Centos 7 package of Apache APISIX Dashboard
make package type=rpm app=dashboard version=2.4 checkout=v2.4 image_base=centos image_tag=7
ls output/
apisix-dashboard-2.4-0.el7.x86_64.rpm
Packaging an Ubuntu 20.04 package of Apache APISIX Dashboard
make package type=deb app=apisix version=2.2 checkout=2.2
ls output/
apisix-dashboard_2.2-0~ubuntu20.04_amd64.deb
Packaging a Centos 7 package of APISIX's OpenResty distribution
make package type=rpm app=apisix-base version=1.0.0 image_base=centos image_tag=7
ls output/
apisix-base-1.0.0-0.el7.x86_64.rpm
Packaging an Ubuntu 20.04 package of Apache APISIX's OpenResty distribution
make package type=deb app=apisix-base version=1.0.0
ls output/
apisix-base_1.0.0-0~ubuntu20.04_amd64.deb
Packaging an Alpine docker image of Apache APISIX's OpenResty distribution
make package version=1.19.3.2.1 image_base=alpine image_tag=3.12 app=apisix-base type=apk
docker images
REPOSITORY TAG
apache/apisix-base-apk 1.19.3.2.1
Details
Makefile
the entrance of the packagerdockerfiles
directory for dockerfilesoutput
directory for packages