Git Product home page Git Product logo

apisix-build-tools's Introduction

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=apisix
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 packager
  • dockerfiles directory for dockerfiles
  • output directory for packages

apisix-build-tools's People

Contributors

alinsran avatar an-dj avatar baoyuantop avatar bzp2010 avatar enableasync avatar fesily avatar fuchange avatar idbeta avatar imjoey avatar jbampton avatar kushal-kothari avatar leslie-tsang avatar lingsamuel avatar mayocream avatar membphis avatar monkeydluffy6017 avatar moonming avatar nic-chen avatar qsliu2017 avatar revolyssup avatar saintak avatar sn0rt avatar soulbird avatar spacewander avatar sunnycjd avatar tao12345666333 avatar tzssangglass avatar xunzhuo avatar yiyiyimu avatar zaunist avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.