arroyo single docker 镜像使用了ubuntu 作为基础镜像,里边包含了不少服务,同时基于supervisord 进行服务管理
具体dockerfile 参考github 我简单介绍一些其他服务
supervisord配置
/opt/arroyo/src/docker/single/supervisord.conf 目录
[supervisord]nodaemon=true
[program:postgres]command=/usr/lib/postgresql/14/bin/postgres -c config_file=/etc/postgresql/14/main/postgresql.confuser=postgrespriority=1startsecs=10autostart=trueautorestart=true
[program:prometheus]command=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.ymlautostart=trueautorestart=true
[program:pushgateway]command=/usr/local/bin/pushgatewayautostart=trueautorestart=true
[program:api]command=/usr/bin/arroyo-apiautostart=trueautorestart=truestderr_logfile=/var/log/supervisor/api.err.logstdout_logfile=/dev/fd/1stdout_logfile_maxbytes=0environment=ASSET_DIR="/opt/arroyo/src/arroyo-console/dist"
[program:controller]# wait until postgres has hopefully startedcommand=bash -c "sleep 10; /usr/bin/arroyo-controller"autostart=trueautorestart=truestderr_logfile=/var/log/supervisor/controller.err.logstdout_logfile=/dev/fd/1stdout_logfile_maxbytes=0environment=REMOTE_COMPILER_ENDPOINT="http://localhost:9000"
[program:compiler]command=/usr/bin/arroyo-compiler-serviceautostart=trueautorestart=truestderr_logfile=/var/log/supervisor/compiler.err.logstdout_logfile=/dev/fd/1stdout_logfile_maxbytes=0environment=BUILD_DIR="/opt/arroyo/build/pipeline",OUTPUT_DIR="/tmp/arroyo/build"说明
以上包含一个arroyo-compiler-service,这个服务比较有意思,会将sql 编译为rust 代码,然后对于编译的文件进行存储可以是本地也可以是s3,目前s3似乎不兼容其他的,只支持aws的
参考资料
https://github.com/ArroyoSystems/arroyo/blob/master/docker/single/Dockerfile
https://github.com/ArroyoSystems/arroyo/blob/master/arroyo-compiler-service/src/main.rs










