commit | 56753632774e06177e241e88ef7b3bf661104772 | [log] [tgz] |
---|---|---|
author | Shuyang Wu <wosoyoung@gmail.com> | Thu Feb 25 18:13:49 2021 +0800 |
committer | GitHub <noreply@github.com> | Thu Feb 25 18:13:49 2021 +0800 |
tree | d8499884a331cd45ae877034daf0726195e21c2b | |
parent | 4b9063bd2f3549f290328d596769a3b625712d82 [diff] |
feat: support build apisix image from local code (#137) * feat: support build apisix image from local code Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * fix typo Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * fix path Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * fix path Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * change cp to mv to reduce image size Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * fix typo Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * to get dir name of apisix Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * no need to copy apisix to image Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * revert Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * revert Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * add ARG Signed-off-by: yiyiyimu <wosoyoung@gmail.com> * add doc Signed-off-by: yiyiyimu <wosoyoung@gmail.com>
Docker images are not official ASF releases but provided for convenience. Recommended usage is always to build the source.
The master branch is for the version of Apache APISIX 2.x . If you need a previous version, please build from the v1.x tag.
# Assign Apache release version number to variable `APISIX_VERSION`, for example: 2.2 . The latest version can be find at `https://github.com/apache/apisix/releases` export APISIX_VERSION=2.2 docker build -t apisix:${APISIX_VERSION}-alpine --build-arg APISIX_VERSION=${APISIX_VERSION} -f alpine/Dockerfile alpine
export APISIX_VERSION=master docker build -t apisix:${APISIX_VERSION}-alpine --build-arg APISIX_VERSION=${APISIX_VERSION} -f alpine/Dockerfile alpine
# To copy apisix into image, we need to include it in build context cd <APISIX-PATH> docker build -t apisix:alpine-local --build-arg APISIX_PATH=. -f <APISIX-DOCKER-PATH>/alpine-local/Dockerfile alpine # Might need root privilege if encounter "error checking context: 'can't stat'"
Note: For Chinese, the following command is always recommended. The additional build argument ENABLE_PROXY=true
will enable proxy to definitely accelerate the progress.
$ docker build -t apisix:${APISIX_VERSION}-alpine --build-arg APISIX_VERSION=${APISIX_VERSION} --build-arg ENABLE_PROXY=true -f alpine/Dockerfile alpine
start all modules with docker-compose
$ cd example $ docker-compose -p docker-apisix up -d
You can refer to the docker-compose example for more try.
$ docker build -t apache/apisix:whole -f ./all-in-one/apisix/Dockerfile . $ docker run -v `pwd`/all-in-one/apisix/config.yaml:/usr/local/apisix/conf/config.yaml -p 9080:9080 -p 2379:2379 -d apache/apisix:whole
The latest version of apisix-dashboard
is 2.4 and should be used with APISIX 2.3.
$ docker build --build-arg APISIX_VERSION=2.2 --build-arg APISIX_DASHBOARD_VERSION=v2.3 -t apache/apisix-dashboard:whole -f ./all-in-one/apisix-dashboard/Dockerfile . $ docker run -v `pwd`/all-in-one/apisix/config.yaml:/usr/local/apisix/conf/config.yaml -v `pwd`/all-in-one/apisix-dashboard/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml -p 9080:9080 -p 2379:2379 -p 9000:9000 -d apache/apisix-dashboard:whole
Tips: If there is a port conflict, please modify the host port through docker run -p
, e.g.
$ docker run -v `pwd`/all-in-one/apisix/config.yaml:/usr/local/apisix/conf/config.yaml -v `pwd`/all-in-one/apisix-dashboard/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml -p 19080:9080 -p 12379:2379 -p 19000:9000 -d apache/apisix-dashboard:whole