
boro/nodejs这是一个用于构建NodeJS容器镜像的Dockerfile,支持与Git仓库进行源码的拉取和推送操作。
该项目的源码文件可在此获取:[***]
如有任何改进建议,请提交拉取请求。
Docker Hub上的构建版本可在此查看:[***]
可用的Node.js版本标签包括:
141618202224Alpine版本会根据Node.js版本自动选择(每个Node.js版本使用最新兼容的Alpine Linux版本)。
如需从源码构建,需克隆Git仓库并运行docker build命令:
git clone [***] cd docker-nodejs docker build -t nodejs:node-18 .
可使用NODE_VERSION构建参数指定特定Node.js版本构建镜像:
docker build --build-arg NODE_VERSION=20 -t nodejs:node-20 .
该构建参数会自动使用Alpine Linux基础镜像(例如,NODE_VERSION=20会使用node:20-alpine)。
本项目使用Drone CI自动构建多个Node.js版本的Docker镜像。.drone.yml配置会为Node.js 14、16、18、20、22和24版本构建镜像,并推送到Docker Hub并打上相应标签。
所需Drone密钥:
dockerhub_username - Docker Hub用户名dockerhub_password - Docker Hub密码或访问令牌构建过程会在推送到main或master分支以及创建Git标签时自动触发。
docker pull boro/nodejs:node-18
可拉取特定Node.js版本:
docker pull boro/nodejs:node-14 docker pull boro/nodejs:node-16 docker pull boro/nodejs:node-18 docker pull boro/nodejs:node-20 docker pull boro/nodejs:node-22 docker pull boro/nodejs:node-24
简单运行容器:
docker run -d boro/nodejs:node-18
如需为Node应用安装组件,只需在应用根目录包含package.json文件,容器启动时会自动安装组件。
目前容器会在Web根目录中查找server.js并执行。
以下是支持的配置选项,可通过-e标志传递给Docker:
npm start或node dist/server.js)。默认为在/app目录中执行node server.js。https://(例如github.com/project/);SSH方式需前缀git@(例如***:project.git)。容器的一个重要特性是通过运行时传递环境变量从Git仓库拉取代码。
必需:在Github创建个人访问令牌请参考指南。
可通过GIT_PERSONAL_TOKEN传递Git账户的个人访问令牌,该令牌需配置正确权限以推拉代码。
由于访问令牌作为有限权限的密码,Git推拉使用HTTPS认证,需指定GIT_USERNAME和GIT_PERSONAL_TOKEN,同时需定义GIT_EMAIL、GIT_NAME和GIT_REPO。
docker run -d -e 'GIT_EMAIL=email_address' -e 'GIT_NAME=full_name' -e 'GIT_USERNAME=git_username' -e 'GIT_REPO=github.com/project' -e 'GIT_PERSONAL_TOKEN=<long_token_string_here>' boro/nodejs:node-18
如需拉取特定分支,添加GIT_BRANCH环境变量:
docker run -d -e 'GIT_EMAIL=email_address' -e 'GIT_NAME=full_name' -e 'GIT_USERNAME=git_username' -e 'GIT_REPO=github.com/project' -e 'GIT_PERSONAL_TOKEN=<long_token_string_here>' -e 'GIT_BRANCH=stage' boro/nodejs:node-18
如需在代码拉取后执行转换脚本,可在Git仓库中包含scripts文件夹并设置RUN_SCRIPTS=1。详见仓库布局指南。
需设置GIT_EMAIL和GIT_NAME变量以启用Git推拉功能,这两个变量用于配置Git并允许容器执行推拉操作。
可通过Docker命令行传递环境变量:
示例:
docker run -d -e 'YOUR_VAR=VALUE' boro/nodejs:node-18
所有日志输出到stdout/stderr,可通过Docker日志命令查看:
docker logs <CONTAINER_NAME>
通过WEBROOT变量设置容器中的Web根目录(例如-e "WEBROOT=/app/public")。默认代码检出到/app目录,若仓库代码不在根目录需使用此变量。

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