blob: 6e8aaf17c2dbeb686b49d7e031815302d746939c [file] [log] [blame]
#!/bin/bash
# Default version
DORIS_QUICK_START_VERSION="2.1.9"
# Parse parameters
while getopts "v:" opt; do
case $opt in
v) DORIS_QUICK_START_VERSION="$OPTARG"
;;
\?) echo "Invalid option: -$OPTARG" >&2
exit 1
;;
esac
done
# Check system type
OS_TYPE=$(uname -s)
if [[ "$OS_TYPE" != "Linux" && "$OS_TYPE" != "Darwin" ]]; then
echo "Error: Unsupported operating system [$OS_TYPE], only Linux and Mac are supported"
exit 1
fi
# Check Docker environment
if ! command -v docker &> /dev/null; then
echo "Error: Docker environment not detected, please install Docker first"
exit 1
fi
# Check docker-compose
COMPOSE_CMD=""
if command -v docker-compose &> /dev/null; then
COMPOSE_CMD="docker-compose"
elif docker compose version &> /dev/null; then
COMPOSE_CMD="docker compose"
else
echo "Error: docker-compose plugin or docker-compose command is required"
exit 1
fi
# Generate docker-compose configuration for corresponding system
if [[ "$OS_TYPE" == "Linux" ]]; then
cat > docker-compose-doris.yaml <<EOF
version: "3"
services:
fe:
image: apache/doris:fe-${DORIS_QUICK_START_VERSION}
hostname: fe
environment:
- FE_SERVERS=fe1:127.0.0.1:9010
- FE_ID=1
network_mode: host
be:
image: apache/doris:be-${DORIS_QUICK_START_VERSION}
hostname: be
environment:
- FE_SERVERS=fe1:127.0.0.1:9010
- BE_ADDR=127.0.0.1:9050
depends_on:
- fe
network_mode: host
EOF
else # Mac system
cat > docker-compose-doris.yaml <<EOF
version: "3"
networks:
custom_network:
driver: bridge
ipam:
config:
- subnet: 172.20.80.0/24
services:
fe:
image: apache/doris:fe-${DORIS_QUICK_START_VERSION}
hostname: fe
ports:
- 8030:8030
- 9030:9030
- 9010:9010
environment:
- FE_SERVERS=fe1:172.20.80.2:9010
- FE_ID=1
networks:
custom_network:
ipv4_address: 172.20.80.2
be:
image: apache/doris:be-${DORIS_QUICK_START_VERSION}
hostname: be
ports:
- 8040:8040
- 9050:9050
environment:
- FE_SERVERS=fe1:172.20.80.2:9010
- BE_ADDR=172.20.80.3:9050
depends_on:
- fe
networks:
custom_network:
ipv4_address: 172.20.80.3
EOF
fi
# Start services
$COMPOSE_CMD -f docker-compose-doris.yaml up -d
echo "Doris cluster started successfully, version: ${DORIS_QUICK_START_VERSION}"
echo "You can manage the cluster using the following commands:"
echo " Stop cluster: $COMPOSE_CMD -f docker-compose-doris.yaml down"
echo " View logs: $COMPOSE_CMD -f docker-compose-doris.yaml logs -f"
echo " Connect to cluster: mysql -uroot -P9030 -h127.0.0.1"
# Display connection information based on system type
if [[ "$OS_TYPE" == "Linux" ]]; then
echo -e "\nAccess FE/BE http ports (8030, 8040) using the following addresses (Linux system):"
echo " http://127.0.0.1:8030"
echo " http://127.0.0.1:8040"
elif [[ "$OS_TYPE" == "Darwin" ]]; then
echo -e "\nAccess FE/BE http ports (8030, 8040) using the following addresses (Mac system):"
echo " http://docker.for.mac.localhost:8030"
echo " http://docker.for.mac.localhost:8040"
echo "Note: If access fails, try using 127.0.0.1 address:"
echo " http://127.0.0.1:8030"
echo " http://127.0.0.1:8040"
fi