本镜像为重写的geoffreybooth's 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基础镜像减小最终镜像体积,降低安全扫描风险。
将example/Dockerfile复制到项目根目录。
编辑复制到项目的Dockerfile,修改第一行,使末尾的版本号与项目的Meteor版本匹配。项目的Meteor版本可在.meteor/release文件中找到。
例如,若项目使用Meteor 3.0.4:
DockerfileFROM jorgenvatle/meteor-base:3.0.4
版本号需对应Docker Hub上的可用标签。
如需更新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\.]*"
将example/.dockerignore复制到项目根目录,并适当编辑,避免将不必要的文件复制到Docker构建上下文,以加速构建。
将example/docker-compose.yml复制到项目根目录。然后在项目根目录运行:
bashdocker-compose up
这将为应用构建镜像并启动,同时启动一个关联的MongoDB容器。访问http://localhost/即可查看运行的应用。
可根据需求编辑项目中的Dockerfile,例如添加Linux依赖。多阶段构建模式的优势在于本基础镜像保持精简,无需ONBUILD触发器或配置文件即可影响最终镜像,用户可通过自己的Dockerfile完全控制最终镜像。
如需在Meteor应用启动前运行命令,可在Dockerfile中将脚本保存为startup.sh并放入$SCRIPTS_FOLDER,entrypoint.sh会自动执行该脚本。
现有多个优秀的Meteor Docker镜像,但本镜像在以下方面具有独特优势:
对比jshimko/meteor-launchpad:后者基于debian:jessie,可能无法通过安全扫描,且体积大于Alpine;此外,其每次生产构建都需下载安装Meteor,而本镜像通过缓存Meteor提升构建效率。
对比meteor/galaxy-images和Treecom/meteor-alpine:这两者均需在主机上构建Meteor应用,再复制到Docker容器中;而本镜像支持在Docker内部完成构建,无需在CI服务器等构建环境中安装Node或Meteor,确保构建环境一致性。
本仓库通过GitHub Action监控Meteor安装脚本,当有新Meteor版本发布时,会自动创建新镜像。对于旧版本,可参考.github/workflows/build-legacy.yml。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429