全部产品
阿里云办公

运行时容器镜像信息

更新时间:2018-12-07 16:30:17

镜像基本信息

  • 镜像名称:alinode
  • 镜像性质:公开
  • 公网地址: docker pull registry.cn-hangzhou.aliyuncs.com/aliyun-node/alinode
  • 经典内网: docker pull registry-internal.cn-hangzhou.aliyuncs.com/aliyun-node/alinode
  • VPC网络: docker pull registry-vpc.cn-hangzhou.aliyuncs.com/aliyun-node/alinode
  • 镜像版本

镜像内容

  • 与社区 Node.js 一一对应的运行时。对应关系
  • agenthub 源码
  • agenthub 启动脚本: 置于容器根目录下。
  1. #!/bin/sh
  2. ENABLE_NODE_LOG=NO node $HOME/default.config.js
  3. if [ -f $HOME/agenthub-running.json ]; then
  4. ENABLE_NODE_LOG=NO agenthub start $HOME/agenthub-running.json
  5. fi
  6. exec "$@"

构建用户镜像(hello world)

  1. mkdir test
  2. touch hello.js
  3. # 复制下面的 hello.js
  4. touch Dockerfile
  5. # 复制下面的 Dockerfie
  6. docker build -t hello .

hello.js

  1. const http = require('http');
  2. http.createServer(function (req, res) {
  3. res.end('hello from alinode docker!\n');
  4. }).listen(7001);

Dockerfile

  1. FROM registry.cn-hangzhou.aliyuncs.com/aliyun-node/alinode:3.13.0
  2. COPY ./hello.js /root/
  3. CMD node /root/hello.js

运行用户镜像

  1. docker run -d -p 7001:7001 -e "APP_ID=your_app_id" -e "APP_SECRET=your_app_secret" hello

创建应用,获得 appidsecret

传入 agenthub 配置的方法

通过命令行

  1. docker run -d -p 7001:7001 -e "APP_ID=your_app_id" -e "APP_SECRET=your_app_secret" hello

注意: 通过命令行只能传入 appidsecret

通过配置文件

将配置写到文件 process.env.HOME/app-config.json 中。

  1. {
  2. "appid": "your_app_id",
  3. "secret": "your_app_secret",
  4. "error_log": ["/path/to/your/error.log"],
  5. "packages": ["/path/to/your/package.json"]
  6. }

注意: 在制作用户镜像时,配置文件只能是 process.env.HOME/app-config.json。文件名和路径都不能更改。

如果使用 egg 集成框架

无需启动 agenthub。

注意

  • 容器内 coredump 生成规则会继承宿主机设置,如果 core_pattern 指定了一个容器中不存在的应用来处理,会造成无法生成 coredump。下面是几个 core_pattern 的例子。值得注意的是,如果指定由 apport 来处理,然而容器内没有安装 apport,那么 coredump 就不会生成。
  1. # 生成的coredump存放在/cloud/data/corefile/目录
  2. # %e 程序名称
  3. # %p pid
  4. # %t dump的时间
  5. # %h hostname
  6. cat /proc/sys/kernel/core_pattern
  7. /cloud/data/corefile/core-%e-%p-%t-%h
  8. # 生成coredump到当前目录,文件名为core,如果已经存在core文件,那么新的coredump不会生成
  9. cat /proc/sys/kernel/core_pattern
  10. core
  11. # coredump由 apport 来处理
  12. # /usr/share/apport/apport <pid> <signal number> <core file ulimit> <dump mode> [global pid]
  13. cat /proc/sys/kernel/core_pattern
  14. |/usr/share/apport/apport %p %s %c