blob: 4d63844303c28cda05b815fed73deb1cce9cc7f8 [file] [view]
# Docker Images
This folder contains Dockerfiles that are used to **build**
our [OAP Docker images](https://hub.docker.com/r/apache/skywalking-oap-server)
and [UI Docker image](https://hub.docker.com/r/apache/skywalking-ui). If you want to use the Docker images, please
check [the user guide for OAP](../docs/en/setup/backend/backend-docker.md)
and [the user guide for UI](../docs/en/setup/backend/ui-setup.md#start-with-docker-image).
## Quickstart
You can use `Makefile` located at the root folder to build a docker image with the current codebase.
```shell
make docker
# OR skip the tests
make docker SKIP_TEST=true
```
It not only contains the process of building a docker image but also includes all the required steps, for instance, init
workspace, build artifact from scratch. It builds two images, OAP, and UI.
```shell
docker image ls | grep skywalking
skywalking/ui latest a14db4e1d70d 6 minutes ago 800MB
skywalking/oap latest 2a6084450b44 6 minutes ago 862MB
```
## Building variables
There are some environment variables to control image building.
### `CONTEXT`
The Docker build context path, under this path, there should be the distribution tar ball.
```shell
ls $CONTEXT
apache-skywalking-apm-bin.tar.gz
```
### `DIST`
The distribution tar ball name, for example, `apache-skywalking-apm-bin.tar.gz`.
### `HUB`
The hub of docker image. The default value is `skywalking`.
### `TAG`
The tag of docker image. The default value is `latest`.
## Running containers with docker-compose
We can start up backend cluster by docker-compose. There are two profiles with
different storage options that you can choose, `elasticsearch` and `banyandb`.
To start up the backend cluster with `elasticsearch` as the storage, run the
following command:
```shell
docker compose --profile elasticsearch up
```
To start up the backend cluster with `banyandb` as the storage, run the
following command:
```shell
docker compose --profile banyandb up
```
[docker/.env](./.env) file contains some configurations that you can customize,
such as the Docker image registry and tags.
After the services are up and running, you can send telemetry data to
localhost:11800 and access the UI at http://localhost:8080.