graalvmjs cube.js 集成简单说明
  8KhYbgszLLmZ 2023年11月24日 24 0

实际上我以前也简单写过关于graalvm 集成cube.js 的,最近graalvmjs 提供了独立的模块,我基于独立包创建了一个docker 镜像
尽管cube.js 也提供了docker 镜像,但是相对来说有点太重(包含了比较多的组件,同时很多是不需要的),很多时候我们是需要
自己基于扩展开发的,以下是一个简单的集成(实际上就是替换nodejs 基础镜像为graalvmjs的镜像)

参考配置

  • Dockerfile

 

FROM node:16.20.2-bullseye-slim as builder
WORKDIR /app
ENV NODE_ENV production
COPY package.json /app/package.json
COPY index.js /app/index.js
RUN npm install 
 
FROM dalongrong/graaljs:23.1.0
WORKDIR /app
ENV NODE_ENV production
 
COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/index.js /app/index.js
COPY model /app/model
ENTRYPOINT [ "node","index.js" ]
index.js
const CubejsServer = require('@cubejs-backend/server');
 
const server = new CubejsServer({});
 
server.listen().then(({ version, port }) => {
  console.log(`🚀 Cube server (${version}) is listening on ${port}`);
}).catch(e => {
  console.error('Fatal error during server start: ');
  console.error(e.stack || e);
});
WORKDIR /app
  • 运行效果

graalvmjs cube.js 集成简单说明_github

 

graalvmjs cube.js 集成简单说明_docker_02

说明

基于graalvmjs 的运行,是一个不错的选择,尤其是需要基于jvm 相关的依赖的时候,实际上我以前也写过实际上可以基于graalvmjs 开发独立的jdbc 驱动,替换默认的基于node addon 的实现,开发以及灵活性上会好很多

参考资料


https://github.com/rongfengliang/cube-test/blob/graalvm/Dockerfile
https://github.com/oracle/graaljs/releases/
https://github.com/rongfengliang/cube-test/tree/graalvm

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月24日 0

暂无评论

推荐阅读
  xaeiTka4h8LY   2024年05月31日   29   0   0 Dockerredis
  xaeiTka4h8LY   2024年05月17日   46   0   0 MySQLgithub
  sElzGQA8fX6P   2023年12月12日   43   0   0 Dockerredisdockerredis
8KhYbgszLLmZ