首页 > 编程语言 >graalvm 23.1.0 独立nodejs docker 镜像&简单试用

graalvm 23.1.0 独立nodejs docker 镜像&简单试用

时间:2023-10-27 13:33:16浏览次数:54  
标签:index graaljs nodejs hashids app 23.1 fastify docker

graaljs docker 镜像

很简单就是下载官方包,集成下,然后进行一些简单的配置

  • Dockerfile
FROM debian:bullseye-backports
LABEL author="rongfengliang"
LABEL email="1141591465@qq.com"
WORKDIR /opt/
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo 'Asia/Shanghai' >/etc/timezone
COPY graalnodejs-23.1.0-linux-amd64/ /opt/nodejs/
ENV PATH=/opt/nodejs/bin:$PATH
LABEL author="rongfengliang"

参考项目

  • package.json
{
  "name": "graaljs-learning",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "ncc build index.js -o dist"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "fastify": "^4.23.2",
    "hashids": "^2.3.0"
  },
  "devDependencies": {
    "@vercel/ncc": "^0.38.0"
  }
}
"name": "graaljs-learning",
  • index.js
const hashids = require('hashids')
 
const myid = new hashids('this is my salt', 10, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890')
 
const Fastify = require('fastify')
 
const fastify = Fastify()
 
fastify.get('/', async (request, reply) => {
    console.log(myid.encode(1, 2, 3))
    reply.send({ hello: myid.encode(1, 2, 3) })
})
 
fastify.listen({
    port: 3000,
    host: "0.0.0.0",
    backlog: 511
}, (err, address) => {
    if (err) {
        console.error(err)
        process.exit(1)
    }
    console.log(`Server listening at ${address}`)
})

 

  • 构建
yarn build
  • docker-compose 文件
version: '3'
services:
   app:
     image: dalongrong/graaljs:23.1.0
     command: node --jvm --polyglot  /app/index.js
     ports:
       - "3000:3000"
     volumes:
     - ./dist:/app/
app:

graalvm 23.1.0 独立nodejs docker 镜像&简单试用_Server

 

说明

docker 镜像我已经push dockerhub了 dalongrong/graaljs:23.1.0 目前来说独立的graaljs 的确会简化node 与jvm 项目的集成,当然从实际测试来说graaljs 暂时还是不如nodejs 项目启动快速,但是对于业务有node 与java 互调用的场景是一个特别好的选择,比基于node-addon 的模式很很多

参考资料

https://github.com/oracle/graaljs/releases/

标签:index,graaljs,nodejs,hashids,app,23.1,fastify,docker
From: https://blog.51cto.com/rongfengliang/8053068

相关文章

  • docker: Error response from daemon: Conflict. The container name "/web" is alrea
    问题:docker启动docker容器时报错docker:Errorresponsefromdaemon:Conflict.ThecontainernameisalreadyinusebycontainerYouhavetoremove(orrename)thatcontainertobeabletoreusethatname.解决办法:在此之前已经启动了相同名字的docker容器,Thecontai......
  • docker如何停止容器(docker如何停止容器进程)
    https://www.yzktw.com.cn/post/1303236.htmlDocker是一款流行的容器化平台,它允许用户创建、部署和运行容器。在使用Docker时,您可能需要停止容器以进行维护或其他操作。下面我们介绍几种停止Docker容器的方法。方法一:使用dockerstop命令dockerstop[容器名/容器id]这个命令......
  • podman/docker重启后自动运行容器
    背景今天发现云主机oom重启之后podman的容器没有自动运行,大概看了一下,是因为Podman不试用Daemon守护进城,所以podman启动后不自动启动容器。这里试用systemd进行自启动管理。方案可以使用podmangeneratesystemd生成并管理生成systemd文件#podmangenerate......
  • 本地docker搭 建开源MySQL审计平台 yearning
     简单介绍:Yearning是一个轻量级的Web端的MySQLSQL语句审核平台,提供查询审计,SQL审核,SQL回滚,自定义工作流等多种功能。Yearning的前端是基于Vue.js构建的,它还提供SQL语法高亮、自动补全和智能提示、可视化等。Yearning自身包含了一套通常适用的审核规范,基本上能满足日常需要,同......
  • 【2023.10.27】不需要同情
    日记好像都在记录我的不开心,有网友问我是为了博取同情吗说实话我好像也没仔细思考过这个问题吧,也许是生活太顺利了吧,所以需要记录下自己的不顺利也许太过乐观也不是一种好事,因为那就缺乏上进的动力,容易被现况满足<\n>前几天发小来找我玩,我将我这段时间在我身上发生的事情全盘......
  • linux用docker
    1.查看docker运行状态systemctlstatusdocker2.查看docker服务是否自启动systemctlis-enabled docker 3.查看docker下运行的所有容器4.启动docker systemctlstart docker5.启动docker下的容器docker-compose-fdocker-compose.yml up-d或启动指定的容器......
  • 2023.10.26
    1、CSV以纯文本形式存储数字和文本数据,以换行符间隔多条记录2、软件实现数据持久性的最基本途径是文件和数据库3、影响应用程序选择数据的存储、管理和处理方式的因素包括共享与传输、数据的持久性和使用频次、数据的量及管理、数据的操作方式4、Java字节流操作的基础类是Out......
  • 2023.10.26——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.软件需求分析及C#明日计划:学习......
  • Docker
    Docker能够解决的问题——项目部署的问题大型项目组件比较多,容易出现兼容性问题开发、测试、生产环境有差异Docker如何解决依赖的兼容问题?将应用的lib(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离容器去运行,避免相互干扰不同环境的操作系统......
  • kubernetes+docker+kubeadm快速安装
    1.Kubernetes1.27发布2023年4月13日,Kubernetes1.27正式发布,这是2023年的第一个版本。这个版本包括60项增强功能。其中18项增强功能进入Alpha、29项进入Beta,还有13项升级为Stable稳定版。2.环境准备2.1主机操作系统操作系统及版本备注CentOS7.9......