- Install docker
- Install docker-compose
- Install docker-desktop
- Requires external network access (If not available, you'll need to use offline images).
- This deployment method supports single-node deployment only (but can have multiple nodes on a single machine).
-
Place this directory (docker-compose) under the deployment directory, for example:
${PWD}/docker-compose
. -
Perform the installation:
a. Modify MySQL password
cd ~/docker-compose # Use the `sed` command to modify the MySQL password # For Linux systems: sed -i 's/MYSQL_PASSWORD=""/MYSQL_PASSWORD="ChangeThisPassword"/g' .env # For Mac systems: sed -i '' 's/MYSQL_PASSWORD=""/MYSQL_PASSWORD="ChangeThisPassword"/g' .env # You can also manually edit the `.env` file to modify the MySQL password and other related configurations vim .env
b. Start the installation
docker compose up -d
c. Wait a moment(about 1~4min) and access the service. Open the following address in your web browser: http://127.0.0.1:8080
d. Check the installation result
docker compose ps
e. View service logs
docker compose logs -f
f. Uninstall/clean up
# clean the services docker compose down # clean the services and volume docker compose down -v
In the .env
file, you can define some configurations that can be modified during deployment.
- Customize external access ports:
... # Web page port KETADB_WEB_PORT=8080 # Cluster discovery port (this port needs to be opened for other machines when assembling multiple nodes) KETADB_UNICAST_PORT=9300 # keta-agent connection port KETADB_TANSPORT_PORT=9400 # SPL search RPC port KETADB_SEARCH_RPC_PORT=9500 ...
- Others:
# Docker repository address REPOSITORY=docker.io # Docker image addresses KETADB_IMAGE_IMAGE=ketaops/ketadb KETA_ML_IMAGE_IMAGE=ketaops/ketadb # Docker image tags KETADB_IMAGE_TAG=latest KETA_ML_IMAGE_TAG=latest # JVM OPTIONS JVM_OPTIONS="-Xmx2g -Xms2g" # MYSQL OPTIONS MYSQL_USER=keta MYSQL_DATABASE=ketadb MYSQL_PASSWORD="" # This password needs to be set MYSQL_RANDOM_ROOT_PASSWORD="true"
- In the
mysql
configuration, a random password is generated for the root user of MySQL. You can use the commanddocker-compose logs mysql | grep "GENERATED ROOT PASSWORD"
to check it. - Configurations for ketadb and keta-ml are injected via environment variables. Please refer to [Parameter Descriptions](todo: ketadb and ketaml parameter descriptions).
- The current deployment method is for single-node deployment and is only recommended for testing and validation. For production deployment, please refer to k8s Deployment.
- Regarding the image repository, you can refer to Docker Hub.
- Currently, keta-ml does not have an arm64 image, so the AMD64 system platform is specified. This should work fine on Mac M1 chip machines. Other ARM architecture machines cannot currently deploy keta-ml. You can remove the
keta-ml
block from thedocker-compose.yml
file for those machines.