
testrigor/launcherMeteor Docker镜像是专为简化Meteor应用部署而设计的容器化解决方案。该镜像基于官方Node.js基础镜像构建,内置Meteor工具链及运行时依赖,可快速构建、打包和运行Meteor全栈JavaScript应用。
meteor build优化参数,减少构建产物体积bash# 拉取最新稳定版 docker pull meteor/meteor:latest # 拉取指定Meteor版本(如2.14) docker pull meteor/meteor:2.14-node18
bash# 进入应用源码目录 cd /path/to/meteor-app # 启动构建容器(挂载源码目录) docker run -it --rm \ -v $(pwd):/app \ -w /app \ meteor/meteor:latest \ meteor build --directory /app/build --architecture os.linux.x86_64
构建完成后,/app/build目录下生成:
bundle/:应用打包文件(包含服务端代码、客户端资源、依赖清单)README:部署说明文档bashdocker run -it --rm \ -p 3000:3000 \ -v $(pwd):/app \ -w /app \ -e ROOT_URL=http://localhost:3000 \ -e MONGO_URL=mongodb://mongo:27017/meteor \ meteor/meteor:latest \ meteor run
需先进入构建产物目录:
bashcd /path/to/meteor-app/build/bundle/programs/server npm install --production # 安装生产依赖 # 启动运行容器 docker run -d \ --name meteor-app \ -p 3000:3000 \ -v $(pwd)/../../../:/app \ -w /app/bundle \ -e NODE_ENV=production \ -e ROOT_URL=[***] \ -e MONGO_URL=mongodb://user:pass@mongo-host:27017/dbname?authSource=admin \ node:18-alpine \ node main.js
| 变量名 | 说明 | 示例值 |
|---|---|---|
ROOT_URL | 应用基础URL(必需) | [***] |
MONGO_URL | MongoDB连接字符串(必需) | mongodb://mongo:27017/meteor |
NODE_ENV | 运行环境类型 | production(默认)/development |
PORT | 应用监听端口 | 3000(默认) |
MAIL_URL | 邮件服务配置(如需发送邮件) | smtp://user:***:587 |
METEOR_SETTINGS | JSON格式的应用配置 | '{"public": {"apiUrl": "/api"}}' |
| 变量名 | 说明 | 默认值 |
|---|---|---|
METEOR_NO_RELEASE_CHECK | 禁用Meteor版本检查 | false |
NODE_OPTIONS | Node.js运行参数 | --max-old-space-size=4096(4GB内存限制) |
bashdocker run -d \ --name meteor-prod \ --restart always \ -p 80:3000 \ -e ROOT_URL=[***] \ -e MONGO_URL=mongodb://mongo-host:27017/prod-db \ -e NODE_ENV=production \ -v /data/meteor/logs:/app/logs \ meteor/meteor:2.14-node18 \ node /app/bundle/main.js
创建docker-compose.yml:
yamlversion: '3.8' services: meteor: image: meteor/meteor:2.14-node18 restart: always ports: - "3000:3000" environment: - ROOT_URL=[***] - MONGO_URL=mongodb://mongo:27017/meteor - NODE_ENV=production - METEOR_SETTINGS={"public": {"analytics": true}} volumes: - ./build/bundle:/app/bundle - meteor_logs:/app/logs depends_on: - mongo user: "1000:1000" # 非root用户运行 mongo: image: mongo:5.0 restart: always volumes: - mongo_data:/data/db command: --wiredTigerCacheSizeGB 1 # 限制内存使用 volumes: meteor_logs: mongo_data:
启动命令:
bashdocker-compose up -d
--memory、--cpus参数)user参数使用非root用户,避免挂载敏感目录到容器内meteor --version输出一致,避免构建错误manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务