Add BanyanDB to docker-compose quickstart (#12006)

This commit is contained in:
kezhenxu94 2024-03-12 16:37:52 +08:00 committed by GitHub
parent 8c16fdd816
commit 0fad582280
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 82 additions and 25 deletions

View File

@ -5,6 +5,7 @@
# export UI_IMAGE=apache/skywalking-ui:<tag> # export UI_IMAGE=apache/skywalking-ui:<tag>
# docker compose up # docker compose up
ES_VERSION=7.4.2 ELASTICSEARCH_IMAGE=docker.elastic.co/elasticsearch/elasticsearch-oss:7.4.2
OAP_IMAGE=skywalking/oap:latest BANYANDB_IMAGE=ghcr.io/apache/skywalking-banyandb:84f32b3969cdcc676aaee428383b34b3b67dbdf5
UI_IMAGE=skywalking/ui:latest OAP_IMAGE=ghcr.io/apache/skywalking/oap:latest
UI_IMAGE=ghcr.io/apache/skywalking/oap:latest

View File

@ -12,6 +12,8 @@ You can use `Makefile` located at the root folder to build a docker image with t
```shell ```shell
make docker 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 It not only contains the process of building a docker image but also includes all the required steps, for instance, init
@ -50,10 +52,25 @@ The tag of docker image. The default value is `latest`.
## Running containers with docker-compose ## Running containers with docker-compose
We can start up backend cluster by 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 ```shell
docker compose up docker compose --profile elasticsearch up
``` ```
[docker/.env](./.env) file contains the default elasticsearch tag (`ES_TAG`). 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.

View File

@ -17,10 +17,14 @@
version: '3.8' version: '3.8'
services: services:
elasticsearch: elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch-oss:${ES_VERSION} profiles:
- "elasticsearch"
image: ${ELASTICSEARCH_IMAGE:-docker.elastic.co/elasticsearch/elasticsearch-oss:7.4.2}
container_name: elasticsearch container_name: elasticsearch
ports: ports:
- "9200:9200" - "9200:9200"
networks:
- demo
healthcheck: healthcheck:
test: [ "CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1" ] test: [ "CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1" ]
interval: 30s interval: 30s
@ -36,40 +40,74 @@ services:
soft: -1 soft: -1
hard: -1 hard: -1
oap: banyandb:
image: ${OAP_IMAGE} profiles:
container_name: oap - "banyandb"
depends_on: image: ${BANYANDB_IMAGE:-ghcr.io/apache/skywalking-banyandb:84f32b3969cdcc676aaee428383b34b3b67dbdf5}
elasticsearch: container_name: banyandb
condition: service_healthy networks:
links: - demo
- elasticsearch expose:
- 17912
command: standalone --stream-root-path /tmp/stream-data --measure-root-path /tmp/measure-data
healthcheck:
test: [ "CMD", "sh", "-c", "nc -nz 127.0.0.1 17912" ]
interval: 5s
timeout: 60s
retries: 120
oap-base: &oap-base
profiles: [ "none" ]
image: ${OAP_IMAGE:-ghcr.io/apache/skywalking/oap:latest}
ports: ports:
- "11800:11800" - "11800:11800"
- "12800:12800" - "12800:12800"
networks:
- demo
healthcheck: healthcheck:
test: [ "CMD-SHELL", "/skywalking/bin/swctl ch" ] test: [ "CMD-SHELL", "curl http://localhost:12800/internal/l7check" ]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 3 retries: 3
start_period: 10s start_period: 10s
environment: environment: &oap-env
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
SW_HEALTH_CHECKER: default SW_HEALTH_CHECKER: default
SW_TELEMETRY: prometheus SW_TELEMETRY: prometheus
JAVA_OPTS: "-Xms2048m -Xmx2048m" JAVA_OPTS: "-Xms2048m -Xmx2048m"
ui: oap-es:
image: ${UI_IMAGE} <<: *oap-base
container_name: ui profiles:
- "elasticsearch"
container_name: oap
depends_on: depends_on:
oap: elasticsearch:
condition: service_healthy condition: service_healthy
links: environment:
- oap <<: *oap-env
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
oap-bdb:
<<: *oap-base
profiles:
- "banyandb"
container_name: oap
environment:
<<: *oap-env
SW_STORAGE: banyandb
SW_STORAGE_BANYANDB_TARGETS: banyandb:17912
ui:
image: ${UI_IMAGE:-ghcr.io/apache/skywalking/ui:latest}
container_name: ui
ports: ports:
- "8080:8080" - "8080:8080"
networks:
- demo
environment: environment:
SW_OAP_ADDRESS: http://oap:12800 SW_OAP_ADDRESS: http://oap:12800
SW_ZIPKIN_ADDRESS: http://oap:9412 SW_ZIPKIN_ADDRESS: http://oap:9412
networks:
demo:

View File

@ -8,6 +8,7 @@
* Upgrade PostgreSQL driver to `42.4.4` to fix CVE-2024-1597. * Upgrade PostgreSQL driver to `42.4.4` to fix CVE-2024-1597.
* Remove CLI(`swctl`) from the image. * Remove CLI(`swctl`) from the image.
* Remove CLI_VERSION variable from Makefile build. * Remove CLI_VERSION variable from Makefile build.
* Add BanyanDB to docker-compose quickstart.
#### OAP Server #### OAP Server