此容器镜像包含Node.JS 4,作为Node.JS 4应用程序的S2I基础镜像。用户可选择基于RHEL或CentOS的构建器镜像。RHEL镜像可在Red Hat容器目录获取,镜像名为registry.access.redhat.com/rhscl/nodejs-4-rhel7;CentOS镜像可在Docker Hub获取,镜像名为centos/nodejs-4-centos7。生成的镜像可使用Docker运行。
Node.js 4容器镜像作为基础平台,用于构建和运行各种Node.js 4应用程序及框架。Node.js是基于Chrome JavaScript运行时构建的平台,便于快速构建高速、可扩展的网络应用。Node.js采用事件驱动的非阻塞I/O模型,使其轻量高效,非常适合在分布式设备上运行的数据密集型实时应用。
要使用独立S2I构建简单的nodejs-sample-app应用,然后通过Docker运行生成的镜像,请执行以下步骤:
bash$ s2i build [***] --context-dir=4/test/test-app/ rhscl/nodejs-4-rhel7 nodejs-sample-app $ docker run -p 8080:8080 nodejs-sample-app
bash$ s2i build [***] --context-dir=4/test/test-app/ centos/nodejs-4-centos7 nodejs-sample-app $ docker run -p 8080:8080 nodejs-sample-app
bash$ curl 127.0.0.1:8080
应用开发者可通过以下环境变量配置镜像的运行时行为:
NODE_ENVNodeJS运行时模式(默认:"production")
DEV_MODE设为"true"时,将使用nodemon自动重新加载服务器(默认:"false")。设置DEV_MODE="true"会将NODE_ENV默认值改为"development"(若未显式设置)。
NPM_RUN选择自定义运行时模式,定义于package.json文件的scripts部分(默认:npm run "start")。使用DEV_MODE时,用户定义的运行脚本不可用。
HTTP_PROXY在装配期间使用npm代理
HTTPS_PROXY在装配期间使用npm代理
NPM_MIRROR构建过程中使用自定义NPM registry镜像下载包
定义环境变量的一种方式是在仓库的.s2i/environment文件中以键值对形式包含它们。例如:DATABASE_USER=sampleUser
DEV_MODE”以下package.json示例包含scripts.dev条目。可在应用的package.json文件中定义自定义NPM_RUN脚本。
要更改npm install期间的日志输出级别,可设置npm_config_loglevel环境变量。详见npm-config。
此镜像支持开发模式,可通过环境变量DEV_MODE切换,取值为true或false。开发模式支持两项功能:
调试端口可通过环境变量DEBUG_PORT指定,仅当DEV_MODE=true时有效。
在开发模式下运行容器的简单示例命令:
bashdocker run --env DEV_MODE=true my-image-id
指定调试端口5454在开发模式下运行:
bash$ docker run --env DEV_MODE=true DEBUG_PORT=5454 my-image-id
在生产模式下运行:
bash$ docker run --env DEV_MODE=false my-image-id
默认情况下,DEV_MODE设为false,DEBUG_PORT设为5858,但DEBUG_PORT仅在DEV_MODE=true时生效。
作为开发模式的一部分,此镜像支持热部署。启用开发模式后,运行中容器内源代码的任何更改将立即反映在运行的Node.js应用中。
要在运行中的容器内修改源代码,使用Docker的exec命令:
bash$ docker exec -it <CONTAINER_ID> /bin/bash
执行docker exec进入运行中的容器后,当前目录为/opt/app-root/src,即应用源代码所在位置。
若已将容器部署到OpenShift,可使用oc rsync将本地文件复制到OpenShift pod中运行的远程容器。
s2i-nodejs容器镜像默认使用npm start命令运行Node.js应用,即执行package.json中的start脚本。在开发模式下,应用使用nodemon运行,nodemon默认查找package.json中的main属性并执行该脚本;若main属性不存在,则执行start脚本。为确保生产和开发模式功能一致,建议移除main属性。
以下是包含main属性和start脚本的package.json示例:
json{ "name": "node-echo", "version": "0.0.1", "description": "node-echo", "main": "example.js", <--- main属性 "dependencies": { }, "devDependencies": { "nodemon": "*" }, "engine": { "node": "*", "npm": "*" }, "scripts": { "dev": "nodemon --ignore node_modules/ server.js", "start": "node server.js" <-- start脚本 }, "keywords": [ "Echo" ], "license": "", }
oc rsync仅在OpenShift 3.1+版本中可用。
Dockerfile及其他源代码可在[***]
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429