blob: e2c6cf6aeb8de620f8475cdf0cad4fcea5d3dfae [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#!/usr/bin/env sh
set -e
SW_STORAGE=
SW_VERSION=${SW_VERSION:-9.7.0}
SW_BANYANDB_VERSION=${SW_BANYANDB_VERSION:-0.5.0}
usage() {
echo "Usage: quickstart-docker.sh [-f]"
echo " -f Run in the foreground"
exit 1
}
while getopts "hf" opt; do
case $opt in
f)
DETACHED=false
;;
h)
usage
exit 0
;;
\?)
echo "Invalid option: -$OPTARG" >&2
exit 1
;;
esac
done
echo "Checking if Docker is installed..."
if ! [ -x "$(command -v docker)" ]; then
echo "Docker is not installed. Please install Docker and try again."
exit 1
fi
temp_dir=$(mktemp -d)
curl -fsSL https://github.com/apache/skywalking/raw/master/docker/docker-compose.yml -o "$temp_dir/docker-compose.yml"
# If SW_STORAGE is not set, prompt the user to select a storage option
if [ -z "$SW_STORAGE" ]; then
echo "Please select a storage option:"
echo "1. Elasticsearch"
echo "2. BanyanDB"
read -p "Enter the number of your choice: " storage_option
fi
case $storage_option in
1)
SW_STORAGE=elasticsearch
;;
2)
SW_STORAGE=banyandb
;;
*)
echo "Invalid choice. Please enter 1 or 2."
exit 1
;;
esac
export BANYANDB_IMAGE=apache/skywalking-banyandb:${SW_BANYANDB_VERSION}
export OAP_IMAGE=apache/skywalking-oap-server:${SW_VERSION}
export UI_IMAGE=apache/skywalking-ui:${SW_VERSION}
echo "Installing SkyWalking ${SW_VERSION} with ${SW_STORAGE} storage..."
docker compose -f "$temp_dir/docker-compose.yml" \
--project-name=skywalking-quickstart \
--profile=$SW_STORAGE \
up \
--detach=${DETACHED:-true} \
--wait
echo "SkyWalking is now running. You can send telemetry data at localhost:11800 and access the UI at http://localhost:8080."
if [ "$SW_STORAGE" = "banyandb" ]; then
echo "You can access BanyanDB web UI at http://localhost:17913."
fi
echo "To stop SkyWalking, run 'docker compose --project-name=skywalking-quickstart down'."