Sign inSign up

yunnysunny/node-compiler

By yunnysunny

•Updated 2 days ago

基于 yunnysunny/node 制作,包含原生 addon 编译环境。

Buildkit cache
Image
Languages & frameworks
0

10K+

yunnysunny/node-compiler repository overview

⁠node 镜像

github 地址:https://github.com/whyun-docker/node⁠

⁠镜像

⁠yunnysunny/node

基础镜像,包含 Node.js 和 yarn、pnpm 命令,并且配置使用阿里源来加速 npm 包安装过程。

⁠yunnysunny/node-compile

基于 yunnysunny/node 制作,包含原生 addon 编译环境。

⁠yunnysunny/node-xtransit

基于 yunnysunny/node 制作,包含 xtransit 环境。 支持的环境变量包括:

名称说明必填
XTRANSIT_SERVEReasy-monitor 的 websocket 服务的地址是
EZM_APP_IDeasy-monitor 的 APP ID是
EZM_APP_SECRETeasy-monitor 的 APP 密钥是
EZM_DISKS磁盘列表,用于 easy-monitor 分析磁盘占用使用,多个磁盘路径之间使用 , 分隔否
EZM_ERRORS错误日志存放全路径,用于 easy-monitor 分析错误日志用,多个路径之间使用 , 分隔否
EZM_PACKAGESpackage.json 文件存放全路径,多个路径之间使用 , 分隔(平级路径中要包含package-lock.json 或者 yarn.lock)否
EZM_LOG_DIRxprofiler 插件生成性能日志文件的目录,默认两者均为 os.tmpdir()否
EZM_DOCKER系统数据采集会依赖当前是否是 docker 环境而进行一些特殊处理,可以手动强制指定当前实例是否为 docker 环境,手动设置为 true 则代表强制设置当前环境为 docker 环境否
EZM_IP_MODE默认仅使用 hostname 作为 agentId,将其设置 为 true ,则 agentId 组装形式为 ${ip}_${hostname}否
EZM_ERR_EXP匹配错误日志起始的正则,默认为匹配到 YYYY-MM-DD HH:mm:ss 时间戳即认为是一条错误日志的起始;可以手动指定其他正则表达式,正则的格式为 /正则表达式/flag, 例如 /\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/i否
ENV_EZM_LOGGER_PROVIDER_FILE自定义 logger 对象文件否
EZM_LOG_LEVELlogger 的日志级别,0 error,1 info,2 warning,3 debug,默认为 2否
EZM_TITLES如果应用使用了 process.title 自定义了名称,可以通过配置这里上报进程数据, 使用 , 分隔多个 title 数据否
EZM_COMMANDS可以配置多个自定义的 easy-monitor 用的 command 目录,使用 , 分隔否
EZM_CLEAN_AFTER_UPLOAD设置为 true,则会在转储本地性能文件成功后删除本地的性能文件否
EZM_CUSTOM_AGENT_PROVIDER_FILE自定义 agent id 的获取的 js 文件否
⁠yunnysunny/easy-monitor

基于 yunnysunny/node 制作,包含 easy-monitor 中的 xprofiler-console⁠ xtransit-manager⁠ xtransit-server⁠ 三个服务。 由于在一个容器中放置了三个服务的代码,所以牵扯到环境变量有些多。其中 CONSOLE_MYSQL_ 开头的变量对应的数据库是用来存储应用和用户相关数据的,LOGS_MYSQL_ 开头的变量对应的数据库是用来存储性能日志相关数据的。同时这三个服务还会用到 redis 来缓存数据,所以需要根据需要提供 REDIS_ 开头的环境变量。 CONSOLE_BASE_URL 这个环境变量需要特殊注意一下,console 服务在通知集成 xprofiler 应用上传性能分析文件时,会讲此变量通过 websocket 发给集成应用,所以这个变量一定要保证集成应用能够正常访问,否则性能收集文件无法上传到 console 服务中。 支持的环境变量变量列表总结如下:

名称说明默认必填
CONSOLE_MYSQL_HOST用户、应用数据库使用的mysql服务的ip或者域名127.0.01否
CONSOLE_MYSQL_PORT用户、应用数据库使用的mysql服务的端口号3306否
CONSOLE_MYSQL_USER用户、应用数据库使用的mysql服务的用户名root否
CONSOLE_MYSQL_PASSWORD用户、应用数据库使用的mysql服务的密码空字符串否
LOGS_MYSQL_DATABASE用户、应用数据库使用的mysql服务的数据库名xprofiler_console否
LOGS_MYSQL_HOST性能日志数据库使用的mysql服务的ip或者域名127.0.01否
LOGS_MYSQL_PORT性能日志数据库使用的mysql服务的端口号3306否
LOGS_MYSQL_USER性能日志数据库使用的mysql服务的用户名root否
LOGS_MYSQL_PASSWORD性能日志数据库使用的mysql服务的密码空字符串否
LOGS_MYSQL_DATABASE性能日志数据库使用的mysql服务的数据库名xprofiler_logs否
REDIS_SERVERredis 服务器的地址,格式为ip1:port1[,ip2:port2],如果只传入一个 ip+端口号,则代表当前出于单点模式,否则代表当前出于集群模式,暂不支持哨兵模式127.0.0.1:6379否
REDIS_PASSWORDredis 服务的访问密码空字符串否
REDIS_DBredis db 的索引0否
CONSOLE_BASE_URLconsole 服务的访问地址,目前会在上传性能分析文件中用到,这里给出的默认值只做本地测试时才有用,正式使用时要保证接入 easy-monitor 的应用能够访问到。http://127.0.0.1:8443⁠否
CONSOLE_PORTxprofiler-console 服务的监听端口8443否
MANAGER_PORTxtransit-manager 服务的监听端口8543否
WSS_PORTxtransit-server 服务的监听端口9190否

⁠版本

x.y.z 版本号在推送的时候,会级联推送 x.y 和 x 版本。 应用会自动抓取 node 官方网站中各个 LTS 版本,并级联推送。目前支持 18+ LTS 版本,低于 18 版本的不会推送。

⁠GitHub Actions 配置

⁠推送至阿里云 ACR

本项目已支持自动推送 Docker 镜像到阿里云容器镜像服务 (ACR)。需要在 GitHub Repository Settings 中配置以下 Secrets 和 Variables:

⁠必需的 Secrets:
  • DOCKERHUB_USERNAME - Docker Hub 用户名
  • DOCKERHUB_TOKEN - Docker Hub Access Token
  • ACR_USERNAME - 阿里云 ACR 用户名(AccessKey ID 或 RAM 用户名)
  • ACR_PASSWORD - 阿里云 ACR 密码(AccessKey Secret 或 RAM 用户密码)
⁠可选的 Variables(在 Repository Settings > Secrets and variables > Actions > Variables 中配置):
  • ACR_REGISTRY - ACR 地域地址,默认为 registry.cn-hangzhou.aliyuncs.com
    • 杭州:registry.cn-hangzhou.aliyuncs.com
    • 上海:registry.cn-shanghai.aliyuncs.com
    • 北京:registry.cn-beijing.aliyuncs.com
    • 深圳:registry.cn-shenzhen.aliyuncs.com
  • ACR_NAMESPACE - ACR 命名空间(必须配置才会推送至 ACR)
⁠推送的镜像地址格式:
  • registry.cn-hangzhou.aliyuncs.com/{namespace}:node-{tag}
  • registry.cn-hangzhou.aliyuncs.com/{namespace}:node-compiler-{tag}
  • registry.cn-hangzhou.aliyuncs.com/{namespace}:node-xtransit-{tag}
  • registry.cn-hangzhou.aliyuncs.com/{namespace}:easy-monitor-{tag}

当 ACR_NAMESPACE 变量未配置或为空时,不会执行 ACR 推送操作。

Tag summary

Content type

Image

Digest

sha256:ef7b7f3fb…

Size

226.9 MB

Last updated

5 months ago

docker pull yunnysunny/node-compiler