跳到主要内容

安装部署(Docker)

1.环境准备

如果要使用 Docker 的方式安装 StreamPark,需要准备好如下的环境:

环境版本要求是否必须备注
Docker1.13.1+Docker版本不低于1.13.1
Docker Compose1.28.0+Docker Compose版本不低于1.28.0
备注

本文默认已经安装好 DockerDocker compose

2.打包镜像

本文讲解的是以手动的方式打包镜像,首先按照如下命令下载 StreamPark 源码,切换分支后把打包好的安装包放到 dist 目录:

## 克隆源码到本地
git clone https://github.com/apache/streampark.git

## 进入 docker 目录
cd streampark/docker

## 切换到期望打包的分支,这里为 release-2.1.5 分支
git checkout release-2.1.5

## 创建dist目录
mkdir dist
提示

创建好 dist 目录之后,可以把打包好或已下载的安装包放到 dist 目录里面,这里为了方便演示,直接从官网下载的安装包。

下载地址:https://streampark.apache.org/download

接着可以开始打包镜像了:

## 注意: 这里已经把安装包放到dist目录了
# cp path/to/apache-streampark_2.12-2.1.5-incubating-bin.tar.gz dist

## 打包镜像,注意镜像名的格式为:<apache/streampark>:<版本号>,注意后面不要漏了 "."
docker build -t apache/streampark:2.1.5 .

## 打包成功后,可以使用命令查看镜像是否已经打包成功
docker images|grep streampark

使用 docker 命令可以查看到镜像已经打包成功,如图所示: docker_build_success

3.启动服务

在当前 StreamPark 源码的 docker 目录,可以使用 docker-compose 命令来启动服务:

docker-compose up -d

启动成功后,可以使用命令查看 StreamPark 服务是否运行正常:

docker ps -a|grep streampark

从下图可以看到,StreamPark 服务启动成功: docker_start_success

访问 StreamPark,地址:http://127.0.0.1:10000

提示

账号密码: admin / streampark

login-page

可以看到 登录成功!

login-success

4.配置详解

从上面可以得知 StreamPark 是使用 docker-compose 命令来启动的,而 docker-compose.yaml 文件是一个用于定义和管理多容器 Docker 应用程序的配置文件,其内容及解析如下:

version: '3.8'  

services:
streampark:
image: apache/streampark:2.1.5 # 使用前面打包好的镜像
ports:
- "10000:10000" # 将容器的 10000 端口映射到主机的 10000 端口,允许访问该端口上的服务
environment:
- TZ=Asia/Shanghai # 容器内时区
- DATASOURCE_DIALECT=h2 # 设置数据源方言,支持 h2, mysql, pgsql,当前为 h2
# 如果使用 MySQL 或 PostgreSQL 数据库,需设置以下参数
# - 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 # 数据库用户名
# - DATASOURCE_PASSWORD=streampark # 数据库密码
volumes:
- /var/run/docker.sock:/var/run/docker.sock # 将主机的 Docker 套接字挂载到容器内,允许容器内的进程与 Docker 进行交互
- /etc/hosts:/etc/hosts:ro # 将主机的 /etc/hosts 文件挂载到容器内,容器只读访问该文件
- ~/.kube:/root/.kube:ro # 将主机的 kube 配置目录挂载到容器中,以便访问 Kubernetes 集群
privileged: true # 给予容器更高权限,通常用于需要与宿主机资源交互的场景
restart: always # 容器崩溃或主机重启后总是自动重启容器
networks:
- streampark # 使用名为 streampark 的自定义网络
healthcheck: # 设置健康检查
test: [ "CMD", "curl", "http://streampark:10000" ] # 使用 curl 检查容器的 10000 端口是否可访问
interval: 5s # 健康检查的间隔时间为 5 秒
timeout: 5s # 每次健康检查的超时时间为 5 秒
retries: 120 # 如果健康检查失败,容器将在 120 次失败后被认为不可用

networks:
streampark:
driver: bridge # 使用桥接网络驱动