
serafinlabs/nodejsserafinlabs/nodejs
本镜像是一个基于Serafin-Labs Linux Alpine镜像的nodeJS镜像,包含常用相关工具和项目构建脚本。dev 变体(参见标签)包含常用开发工具和特性。
dev 标签提供一些常用的nodeJS开发包(全局安装)以及基础镜像的开发工具。
开发相关Linux包:
开发相关nodeJS包:
适用于需要快速部署和运行nodeJS项目的场景,支持生产环境运行和开发环境调试。特别适合需要集成Git、NPM私有仓库访问等开发流程的nodeJS应用。
该镜像期望项目文件位于目录/srv。默认命令为npm start,因此镜像设计用于运行包含package.json文件且其中包含start脚本部分的项目,例如:
json"scripts": { "start": "forever --minUptime 1000 --spinSleepTime 1000 lib/index.js", }
bashdocker build Dockerfile
bashdocker run --rm serafinframework/nodejs <command>
bashdocker exec -ti <container_name> sh
dev 镜像标签的容器允许运行bash甚至zsh shell(推荐)。只需将sh替换为所需的shell即可。
运行包含本地项目的容器:
bashdocker run --name <my_project> -v .:/srv -p 80:80 -p 5858:5858 serafinframework/nodejs-dev
- 端口80用于提供HTTP内容
- 端口5859可映射以附加调试器
可选地,可挂载其他卷以简化开发:
yamlversion: "2" services: csl: image: serafinframework/nodejs-dev ports: - "80:80" - "5858:5859" links: - memcached - dynamodb volumes: - .:/srv - ~/.ssh/id_rsa:/home/node/.ssh/id_rsa:ro - ~/.gitconfig:/home/node/.gitconfig:ro - ~/.npmrc:/home/node/.npmrc:ro
容器入口点运行脚本startup.sh,该脚本附加调试器、运行容器命令,并读取可选环境变量以:
TIMEZONE:可用于定义不同的时区BUILD:如果不为空,将根据以下环境变量从Git仓库获取并构建项目:
GIT_BUCKET:git项目仓库GIT_BRANCH(可选):默认master,可指定其他git分支BUILD(可选):如果值为dev,项目将进行版本控制并包含NPM开发包示例
bashdocker run -ti -v ~/.ssh/id_rsa:/home/node/.ssh/id_rsa -v ~/.npmrc:/home/node/.npmrc -e TIMEZONE='America/Montreal' -e BUILD=1 -e GIT_BUCKET=***:serafinframework/myproject.git GIT_BRANCH=test serafinframework/nodejs
镜像包含可执行文件*/opt/docker/startup-timezone.sh*,可在运行时用于设置容器时区。时区必须对应Linux tzdata时区名称,例如America/Montreal。
镜像包含可执行文件*/opt/docker/build.sh*,可在运行时用于从Git源获取项目。可能需要共享id-rsa密钥以访问仓库。
获取源代码后,将运行npm install命令。如果设置了开发者选项,生成的项目将进行版本控制,并部署NPM开发包;否则,项目将为生产版本。
使用方法
bash/opt/docker/build.sh [-dh] <git仓库> [<git分支>]

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务