本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
此容器镜像包含Node.JS 8作为S2I基础镜像,适用于您的Node.JS 8应用程序。用户可以选择基于RHEL或CentOS的构建器镜像。RHEL镜像可在Red Hat容器目录中获取,CentOS镜像可在Podman Hub上获取,Fedora镜像可在Fedora Registry中获取。生成的镜像可使用podman运行。
注意:虽然本README中的示例使用podman,但您可以将任何此类调用替换为docker,参数相同。
Node.js 6容器是构建和运行各种Node.js 6应用程序和框架的基础平台。Node.js是基于Chrome JavaScript运行时构建的平台,可轻松构建快速、可扩展的网络应用程序。Node.js采用事件驱动的非阻塞I/O模型,使其轻量且高效,非常适合在分布式设备上运行的数据密集型实时应用程序。
在此部分,我们假设您使用的是rhscl/nodejs-6-rhel7镜像,可通过OpenShift中的nodejs:6镜像流标签获取。
在OpenShift中构建一个简单的nodejs-sample-app应用程序可通过以下步骤实现:
oc new-app nodejs:6~[***] --context-dir=6/test/test-app/
在已安装独立S2I应用程序的系统上,也可使用以下命令构建相同的应用程序:
$ s2i build [***] --context-dir=6/test/test-app/ rhscl/nodejs-6-rhel7 nodejs-sample-app
访问应用程序:
$ curl 127.0.0.1:8080
应用程序开发人员可使用以下环境变量配置此镜像的运行时行为:
NODE_ENV
NodeJS运行时模式(默认:"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
以下package.json示例包含一个scripts.dev条目。您可以在应用程序的package.json文件中定义自己的自定义NPM_RUN脚本。
要更改npm install期间输出的日志级别,可设置npm_config_loglevel环境变量。参见npm-config。
此镜像支持开发模式。可通过环境变量DEV_MODE开启或关闭此模式。DEV_MODE可设为true或false。
开发模式支持两个功能:
调试端口可通过环境变量DEBUG_PORT指定。DEBUG_PORT仅在DEV_MODE=true时有效。
在开发模式下运行容器的简单示例命令:
podman run --env DEV_MODE=true my-image-id
要在开发模式下以5454为调试端口运行容器:
$ podman run --env DEV_MODE=true DEBUG_PORT=5454 my-image-id
要在生产模式下运行容器:
$ podman run --env DEV_MODE=false my-image-id
默认情况下,DEV_MODE设为false,DEBUG_PORT设为5858,但DEBUG_PORT仅在DEV_MODE=true时相关。
作为开发模式的一部分,此镜像支持热部署。如果启用开发模式,运行中容器内更改的任何源代码将立即反映在运行的Node.js应用程序中。
要在运行中的容器中更改源代码,使用Podman的exec命令:
$ podman exec -it <CONTAINER_ID> /bin/bash
通过Podman exec进入运行中的容器后,当前目录会设置为/opt/app-root/src,即应用程序源代码所在位置。
如果您已将容器部署到OpenShift,可使用oc rsync将本地文件复制到OpenShift pod中运行的远程容器。
s2i-nodejs容器镜像的默认行为是使用npm start命令运行Node.js应用程序,这会执行package.json文件中的start脚本。在开发模式下,应用程序使用nodemon命令运行。nodemon的默认行为是查找package.json文件中的main属性并执行该脚本。如果package.json中没有main属性,它将执行start脚本。因此,为了在生产模式和开发模式之间实现统一的功能,用户应移除main属性。
以下是package.json文件示例,其中main属性和start脚本已适当标记:
{ "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和其他源代码可在[***]Dockerfile,RHEL7的Dockerfile名为Dockerfile.rhel7,RHEL8的为Dockerfile.rhel8,Fedora的Dockerfile名为Dockerfile.fedora。
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429