Docker 部署
Docker 快速使用教程
本教程使用三种不同的方式通过 Docker 完成 Dinky 的部署,如果你想要快速体验,推荐使用 standalone-server 镜像, 如果你想要体验比较完整的服务,推荐使用 docker-compose 启动服务。如果你已经有自己的数据库服务 你想要沿用这些基础服务,你可以参考沿用已有的 Mysql 、 Hadoop 和 Flink 服务完成部署。
前置条件
- Docker 1.13.1+
- Docker Compose 1.28.0+(可选)
Docker启动
使用 H2 本地数据库快速启动
docker run --restart=always -p 8888:8888 \
--name dinky \
dinky dinkydocker/dinky-standalone-server:1.1.0-flink1.17
使用 外部mysql数据库
docker run --restart=always -p 8888:8888 \
--name dinky \
-e DB_ACTIVE=mysql \
-e MYSQL_ADDR=127.0.0.1:3306 \
-e MYSQL_DATABASE=dinky \
-e MYSQL_USERNAME=dinky \
-e MYSQL_PASSWORD=dinky \
-v /opt/lib:/opt/dinky/customJar/ \
dinky dinkydocker/dinky-standalone-server:1.1.0-flink1.17
由于mysql与Apache 2.0协议不兼容,dinky无法默认提供mysql驱动,所以需要您手动提供mysql依赖并放到/opt/dinky/customJar/
下面,上面已经给出了映射,如果你有自己的依赖目录,修改即可
使用 外部postgres数据库
docker run --restart=always -p 8888:8888 \
--name dinky \
-e DB_ACTIVE=pgsql \
-e POSTGRES_ADDR=127.0.0.1:5432 \
-e POSTGRES_DATABASE=dinky \
-e POSTGRES_USERNAME=dinky \
-e POSTGRES_PASSWORD=dinky \
-v /opt/lib:/opt/dinky/customJar/ \
dinky dinkydocker/dinky-standalone-server:1.1.0-flink1.17
使用docker-compose
docker-compose可快速帮你搭建起来dinky与flink集群环境,
下载dinky源码后,在 deploy/docker
下面即可找到docker-compose.yml
和 .env
文件,
cd deploy/docker/
ls -al
-rwxrwxrwx 1 root root 765 May 29 11:29 docker-compose.dev.yml
-rwxrwxrwx 1 root root 699 May 29 11:29 docker-compose.yml
-rwxrwxrwx 1 root root 1603 May 29 11:29 Dockerfile
-rwxrwxrwx 1 root root 1718 May 29 11:46 .env
编辑 .env
文件,修改你想要的配置,如果只是快速体验,无需修改任何内容
#定义dinky版本号
DINKY_VERSION=1.1.0
#定义Flink版本(不要写小版本号)
FLINK_VERSION=1.17
# 自定义jar包依赖本地路径(例如:mysql驱动)
CUSTOM_JAR_PATH=/opt/dinky/extends/
# 使用那种数据库,默认h2
DB_ACTIVE=h2
# h2数据库持久化文件路径
H2_DB=./tmp/db/h2
## 使用mysql数据库时打开注释并填写内容
## 如果 DB_ACTIVE 配置为mysaql,请修改下面配置,否则忽略
##MYSQL_ADDR=127.0.0.1:3306
#MYSQL_DATABASE=dinky
#MYSQL_USERNAME=dinky
#MYSQL_PASSWORD=dinky
## 使用pg数据库时打开注释并填写内容
## 如果 DB_ACTIVE 配置为pgsql,请修改下面配置,否则忽略
##POSTGRES_USER=dinky
#POSTGRES_PASSWORD=dinky
#POSTGRES_ADDR=localhost:5432
#POSTGRES_DB=dinky
# 时区
TZ=Asia/Shanghai
# 自带Flink集群配置,一般不用改
FLINK_PROPERTIES="jobmanager.rpc.address: jobmanager"
启动集群
docker-compose up -d
本地开发
可使用
docker compose --profile standalone -f docker-compose.yml -f docker-compose.dev.yml up
进行docker镜像的构建及运行(/docker/.env文件配置相关环境变量).
如果需要前后端分离, 可使用
docker compose --profile ms -f docker-compose.yml -f docker-compose.dev.yml up
(适配自身nginx的docker/web/default.conf配置) 对于1.15上版本,需要手动将容器中/opt/diny/plugin/flink{version}/flink-table-planner-loader.jar移除, 替换为相应版本的flink-table-planner_.jar文件. 创建容器时,可映射到容器/opt/diny/customJar文件夹,添加自定义jar包.
欢迎补充
Nginx 配置
Dinky使用了SSE技术作为日志推流,如果您使用了nginx代理,需要配置Nginx支持SSE,否则默认Nginx配置会导致大量连接异常,造成页面极其卡顿, 需要在Nginx配置文件中添加以下配置:
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;