streampark Docker & Self-Hosted Deployment

GitHub

Make stream processing easier! Easy-to-use streaming application development framework and operation platform.

RAW Compose
1. Pull Image (DOCKERHUB) docker pull apache/streampark
2. Docker Run (1-Click Launch) docker run -d --name streampark -p 10000:10000 --restart always apache/streampark:latest
3. Podman Run podman run -d --name streampark -p 10000:10000 --restart always apache/streampark:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/apache/streampark:latest
5. ORAS Pull (OCI Artifact) oras pull apache/streampark:latest
6. Compose Deployment docker compose up -d
docker/docker-compose.yaml
Download .yml
# 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.

version: '3.8'

services:
  streampark:
    image: apache/streampark:latest
    ports:
      - "10000:10000"  # Map port 10000 of the container to port 10000 of the host to allow access to the service on that port
    environment:
      - TZ=Asia/Shanghai  # Container's timezone
      - DATASOURCE_DIALECT=h2   # Set the datasource dialect, supports h2, mysql, pgsql, default: h2
      # If using MySQL or postgresql, please set the parameters:
      # - DATASOURCE_URL=jdbc:mysql://localhost:3306/streampark?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
      # - DATASOURCE_URL=jdbc:postgresql://localhost:5432/streampark?stringtype=unspecified
      # - DATASOURCE_USERNAME=root  # Database username
      # - DATASOURCE_PASSWORD=streampark  # Database password
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock  # Mount the host's Docker socket inside the container to allow interaction with Docker
      - /etc/hosts:/etc/hosts:ro  # Mount the host's /etc/hosts file inside the container, read-only access
      - ~/.kube:/root/.kube:ro    # Mount the host's kube configuration directory inside the container to access the Kubernetes cluster
    privileged: true  # Grant the container higher privileges, typically for scenarios requiring interaction with host resources
    restart: always   # Ensure the container always restarts after crashes or host reboots
    networks:
      - streampark    # Use a custom network named streampark
    healthcheck:  # Set a health check
      test: [ "CMD", "curl", "http://streampark:10000" ]  # Use curl to check if port 10000 of the container is accessible
      interval: 5s  # Health check interval is 5 seconds
      timeout: 5s  # Timeout for each health check is 5 seconds
      retries: 120  # The container will be considered unhealthy after 120 failed health checks

networks:
  streampark:
    driver: bridge  # Use the bridge network driver