NOTE: We support Docker Image, please visit DockerHub for more information. The following steps are for building Docker Image manually.
To build the Dashboard with Docker, you simply download the Dockerfile
file from the root directory to your device (no need to download all source codes) then follow this guide.
The manager-api
and web
will be included in this build guide product.
Before using Docker to build images and start containers, make sure that the following dependencies are installed and running in your environment.
# Execute the build command in the directory where the Dockerfile is located (by default, the project root), specifying the tag manually.
$ docker build -t apisix-dashboard:$tag .
# For users in mainland China, the `ENABLE_PROXY` parameter can be provided to speed up module downloads.
$ docker build -t apisix-dashboard:$tag . --build-arg ENABLE_PROXY=true
## Launch
1. Preparing configuration files
Before starting the container, the configuration file `conf.yaml` needs to be prepared inside the **host** to override the default [configuration file](https://github.com/apache/apisix-dashboard/blob/master/api/conf/conf.yaml) inside the container.
Kindly note:
- Only when `conf.listen.host` is `0.0.0.0` can the external network access the services within the container.
- `conf.etcd.endpoints` must be able to access the `etcd` service within the container. For example: use `host.docker.internal:2379` so that the container can access `etcd` on the host network.
2. Launch the Dashboard
sh
$ docker run -d -p 9000:9000 -v /path/to/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml --name apisix-dashboard apisix-dashboard:$tag
3. Check if the container started successfully
sh $ docker ps -a
If the container `apisix-dashboard` is ok, visit `http://127.0.0.1:9000` to use the dashboard with GUI, where the default username and password are `admin`.
4. Stop
sh $ docker stop apisix-dashboard
## Other
1. Caching is not recommended when building a image multiple times.
sh $ docker build -t apisix-dashboard:$tag . --no-cache=true ```