
本镜像为重写的https://github.com/disney/meteor-base Docker镜像,旨在简化Meteor应用基础Docker镜像的构建和发布流程。作为Meteor应用的基础镜像,它支持通过多阶段Dockerfile构建,无需在构建机器上安装Node或Meteor,确保构建环境隔离可控,适合持续集成(CI)场景,实现可重复构建。
自动化构建:自动构建机制解决了新Meteor版本发布时,原镜像作者未及时更新对应Docker镜像的问题。
优化的entrypoint.sh:最终bundle中的默认entrypoint.sh不再无限期轮询等待MongoDB连接,而是在连接失败时以错误码退出。这解决了在Kubernetes等容器编排工具中,容器无法连接Mongo却被错误报告为健康的问题。
脚本重构:脚本经过重构,更清晰地指示其预期使用场景。
构建速度优化:示例用法经过重构,更好地利用Docker层缓存,在Meteor依赖未变更时显著加快重复构建速度。
适用于需要通过Docker构建和部署的Meteor应用,尤其适合:
持续集成(CI)环境:无需在CI服务器上安装Node或Meteor,构建过程完全在Docker内部完成,确保环境一致性。
容器编排场景:如Kubernetes等环境,改进的entrypoint.sh确保连接Mongo失败时容器正确退出,避免健康状态误报。
追求构建效率与镜像精简:通过优化的Docker层缓存提升构建速度,基于Alpine Linux基础镜像减小最终镜像体积,降低安全扫描风险。
Step 1: 从模板引导Dockerfile
将example/Dockerfile复制到项目根目录。
Step 2: 在Dockerfile中设置正确的Meteor版本
编辑复制到项目的Dockerfile,修改第一行,使末尾的版本号与项目的Meteor版本匹配。项目的Meteor版本可在.meteor/release文件中找到。
例如,若项目使用Meteor 3.0.4:
DockerfileFROM jorgenvatle/meteor-base:3.0.4
版本号需对应https://hub.docker.com/r/jorgenvatle/meteor-base/tags%E3%80%82
如需更新FROM node行中的Node版本以匹配Meteor版本,可在应用目录中运行以下命令获取对应Node版本:
bashdocker run --rm jorgenvatle/meteor-base:$(cat ./.meteor/release | cut -c8-99) meteor node --version | cut -c2-99 | grep -o "[0-9\.]*"
Step 3: 配置.dockerignore加速构建
将example/.dockerignore复制到项目根目录,并适当编辑,避免将不必要的文件复制到Docker构建上下文,以加速构建。
Step 4: 构建与运行
将example/docker-compose.yml复制到项目根目录。然后在项目根目录运行:
bashdocker-compose up
这将为应用构建镜像并启动,同时启动一个关联的MongoDB容器。访问http://localhost/即可查看运行的应用。
可根据需求编辑项目中的Dockerfile,例如添加Linux依赖。多阶段构建模式的优势在于本基础镜像保持精简,无需ONBUILD触发器或配置文件即可影响最终镜像,用户可通过自己的Dockerfile完全控制最终镜像。
如需在Meteor应用启动前运行命令,可在Dockerfile中将脚本保存为startup.sh并放入$SCRIPTS_FOLDER,entrypoint.sh会自动执行该脚本。
现有多个优秀的Meteor Docker镜像,但本镜像在以下方面具有独特优势:
**对比https://github.com/jshimko/meteor-launchpad**%EF%BC%9A%E5%90%8E%E8%80%85%E5%9F%BA%E4%BA%8E%60debian:jessie%60%EF%BC%8C%E5%8F%AF%E8%83%BD%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E5%AE%89%E5%85%A8%E6%89%AB%E6%8F%8F%EF%BC%8C%E4%B8%94%E4%BD%93%E7%A7%AF%E5%A4%A7%E4%BA%8EAlpine%EF%BC%9B%E6%AD%A4%E5%A4%96%EF%BC%8C%E5%85%B6%E6%AF%8F%E6%AC%A1%E7%94%9F%E4%BA%A7%E6%9E%84%E5%BB%BA%E9%83%BD%E9%9C%80%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85Meteor%EF%BC%8C%E8%80%8C%E6%9C%AC%E9%95%9C%E5%83%8F%E9%80%9A%E8%BF%87%E7%BC%93%E5%AD%98Meteor%E6%8F%90%E5%8D%87%E6%9E%84%E5%BB%BA%E6%95%88%E7%8E%87%E3%80%82
**对比https://github.com/meteor/galaxy-images%E5%92%8Chttps://github.com/Treecom/alpine-meteor**%EF%BC%9A%E8%BF%99%E4%B8%A4%E8%80%85%E5%9D%87%E9%9C%80%E5%9C%A8%E4%B8%BB%E6%9C%BA%E4%B8%8A%E6%9E%84%E5%BB%BAMeteor%E5%BA%94%E7%94%A8%EF%BC%8C%E5%86%8D%E5%A4%8D%E5%88%B6%E5%88%B0Docker%E5%AE%B9%E5%99%A8%E4%B8%AD%EF%BC%9B%E8%80%8C%E6%9C%AC%E9%95%9C%E5%83%8F%E6%94%AF%E6%8C%81%E5%9C%A8Docker%E5%86%85%E9%83%A8%E5%AE%8C%E6%88%90%E6%9E%84%E5%BB%BA%EF%BC%8C%E6%97%A0%E9%9C%80%E5%9C%A8CI%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AD%89%E6%9E%84%E5%BB%BA%E7%8E%AF%E5%A2%83%E4%B8%AD%E5%AE%89%E8%A3%85Node%E6%88%96Meteor%EF%BC%8C%E7%A1%AE%E4%BF%9D%E6%9E%84%E5%BB%BA%E7%8E%AF%E5%A2%83%E4%B8%80%E8%87%B4%E6%80%A7%E3%80%82
本仓库通过GitHub Action监控Meteor安装脚本,当有新Meteor版本发布时,会自动创建新镜像。对于旧版本,可参考.github/workflows/build-legacy.yml。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务