Node.js 性能平台 - Node.js Performance Platform
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
3
4
context
official
.gitignore
README.md
build.sh
docker-compose.yml
push.sh

README.md

docker-alinode

Node.js 性能平台 - Node.js Performance Platform

集成 alinode + yarn + pm2 + agenthub
自动启动 agenthub 服务,让你可以像 pm2 镜像一样方便使用。

GitHub | Docker Store | 《Node.js性能平台运行时版本和官方对应列表》 | 《官网 Dockerfile 模板》

标签对应关系

镜像 基础镜像 AliNode Node Dockerfile
toomee/alinode:3 debian:jessie v3.13.0 v8.14.0 Dockerfile
toomee/alinode:3-slim debian:jessie-slim v3.13.0 v8.14.0 Dockerfile
toomee/alinode:3-alpine alpine:3.8 v3.13.0 v8.14.0 Dockerfile
toomee/alinode:4 debian:jessie v4.6.0 v10.14.0 Dockerfile
toomee/alinode:4-slim debian:jessie-slim v4.6.0 v10.14.0 Dockerfile
toomee/alinode:4-alpine alpine:3.8 v4.6.0 v10.14.0 Dockerfile

所有镜像

$ docker images toomee/alinode
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
toomee/alinode      4                   0f39ed0cadad        22 minutes ago      262MB
toomee/alinode      4.6                 0f39ed0cadad        22 minutes ago      262MB
toomee/alinode      4.6.0               0f39ed0cadad        22 minutes ago      262MB
toomee/alinode      4-slim              395d071862d5        24 minutes ago      214MB
toomee/alinode      4.6-slim            395d071862d5        24 minutes ago      214MB
toomee/alinode      4.6.0-slim          395d071862d5        24 minutes ago      214MB
toomee/alinode      4-alpine            ef94449397a9        26 minutes ago      98.3MB
toomee/alinode      4.6-alpine          ef94449397a9        26 minutes ago      98.3MB
toomee/alinode      4.6.0-alpine        ef94449397a9        26 minutes ago      98.3MB
toomee/alinode      3                   3dc3f678847d        28 minutes ago      257MB
toomee/alinode      3.13                3dc3f678847d        28 minutes ago      257MB
toomee/alinode      3.13.0              3dc3f678847d        28 minutes ago      257MB
toomee/alinode      3-slim              6dbfdb364461        29 minutes ago      210MB
toomee/alinode      3.13-slim           6dbfdb364461        29 minutes ago      210MB
toomee/alinode      3.13.0-slim         6dbfdb364461        29 minutes ago      210MB
toomee/alinode      3-alpine            a1f4efa4a730        31 minutes ago      98.3MB
toomee/alinode      3.13-alpine         a1f4efa4a730        31 minutes ago      98.3MB
toomee/alinode      3.13.0-alpine       a1f4efa4a730        31 minutes ago      98.3MB

使用说明

假设你的项目是如下结构

.
├── src
│   └── app.js
├── package.json
├── ecosystem.config.js
└── README.md

拉取镜像

$ docker pull toomee/alinode:3-alpine

1. 直接启动

到当前项目目录下执行如下命令:

$ docker run -d \
  -p 8000:8000 \
  -v $PWD:/app \
  -e "APP_ID=应用ID" \
  -e "APP_SECRET=应用密钥" \
  -h my-alinode \
  --name my-alinode \
  toomee/alinode:3-alpine

2. 基于配置启动

项目跟目录创建 alinode.config.json 内容如下:

Agenthub 文档

{
  "appid": "<YOUR APPID>",
  "secret": "<YOUR SECRET>",
  "logdir": "/tmp/",
  "error_log": [
    "</path/to/your/error.log>",
    "您的应用在业务层面产生的异常日志的路径",
    "例如:/root/.logs/error.#YYYY#-#MM#-#DD#-#HH#.log",
    "可选"
  ],
  "packages": [
    "</path/to/your/package.json>",
    "可以输入多个package.json的路径",
    "可选"
  ]
}

然后启动容器:

$ docker run -d \
  -p 8000:8000 \
  -v $PWD:/app \
  -h my-alinode \
  --name my-alinode \
  toomee/alinode:3-alpine

常用命令

命令 描述
$ docker exec my-alinode pm2 monit 监控每个进程 CPU 使用情况
$ docker exec my-alinode pm2 list 列出进程
$ docker exec my-alinode pm2 logs 查看日志
$ docker exec my-alinode pm2 reload all 无缝重启所有进程

PS: 具体使用说明看 PM2 和 alinode 文档

高级应用

多环境基于配置部署方案:

添加 alinode.config.json, alinode.config.pre.json 到根目录。

启动 pre 环境容器:

$ docker run -d \
  -p 8000:8000 \
  -v $PWD:/app \
  -e "ALINODE_CONFIG=alinode.config.pre.json" \
  -h my-alinode \
  --name my-alinode \
  toomee/alinode:3-alpine

启动 正式 环境容器:

$ docker run -d \
  -p 8000:8000 \
  -v $PWD:/app \
  -h my-alinode \
  --name my-alinode \
  toomee/alinode:3-alpine

docker-compose

也可以使用 docker-compose.yml 启动。

web:
  image: toomee/alinode:3-alpine
  restart: always
  hostname: my-alinode
  container_name: my-alinode
  environment:
    APP_ID: 应用ID
    APP_SECRET: 应用密钥
    # 或者使用自定义环境配置
    # ALINODE_CONFIG: alinode.config.pre.json
  ports:
    - 8000:8000
  volumes:
    - $PWD:/app

常用命令

$ docker-compose pull    # 更新/拉取镜像
$ docker-compose up -d   # 启动
$ docker-compose restart # 重启
$ docker-compose down    # 关闭并删除

特别说明

-h my-alinode 是容器 hostname 最终会显示在 https://node.console.aliyun.com/ 平台实例列表中。 如果不写,会显示默认容器名,也就是随机值。

自定义

推荐自定义修改 Dockerfile 然后构建合适自己的镜像。
由于官网还没开源,所以 Dockerfile 也是未知的,官方镜像就像是黑匣子。
这个是我研究官网镜像总结出来的,是基于官网镜像直接抽取的,兼容性目前来看没啥问题。
有问题,欢迎反馈。