docker-ember 是一套基于 Docker 的工具集,旨在提供可重现的 ember-cli 使用环境。它解决了跨机器开发时因操作系统差异导致的 nodejs/iojs 版本不一致、sass 绑定差异等问题,通过 Docker 容器化确保构建环境的一致性。结合 Docker 用户命名空间特性,卷挂载权限管理得以简化,同时提供封装脚本降低 Docker 命令的使用复杂度。
非交互式命令行工具,用于执行 npm/bower 依赖安装及其他非交互式 ember 命令。
示例:
bash# 安装 ember 依赖 ed ember install ember-cli-coffeescript # 安装所有 node 模块 ed npm install # 安装 bower 组件 ed bower install
用于启动 ember 开发服务器,支持端口配置与代理设置。
示例:
bash# 启动默认 ember 服务器 eds # 代理到本地服务(使用 host 代替 localhost) eds --proxy=[***] # 指定端口启动 eds --port=4000 --live-reload-port=64000
交互式命令行工具,支持需要用户输入的 ember 命令。
示例:
bash# 生成路由 edi ember generate route epic-win # 发布次要版本 edi ember release --minor
插件开发辅助工具,替代 npm link/npm unlink 实现容器内插件链接管理。
示例:
bash# 创建插件全局符号链接 cd your-ember-addon edl # 在项目中使用插件 cd your-ember-project edl your-ember-addon # 移除插件全局链接 cd your-ember-addon edl -u
注意:
edl依赖edi命令在 PATH 中可用。
ed 执行非交互式依赖安装(npm/bower/ember 依赖)。eds 启动 ember 服务器,支持端口自定义与 API 代理。edi 执行需要用户输入的命令(如代码生成、版本发布)。edl 管理本地开发插件的链接与解除,替代传统 npm 链接机制。前提:已正确配置 Docker。克隆仓库并将 bin 目录添加至 PATH:
bashgit clone [***] echo "export PATH=\$PATH:`pwd`/docker-ember/bin" >> ~/.bashrc source ~/.bashrc
建议使用 brew 安装脚本以解决 Docker for Mac 特定问题:
bash# 参考:[***]
通过 ~/.config/edi/settings 文件配置 Ember 版本,使用 VERSION 变量:
bashVERSION="3.15.1" # 设置 Ember 版本为 3.15.1
默认情况下,ed* 命令在容器中以 root 用户运行,可能导致新文件所有者为 root。可通过 Docker 用户命名空间配置解决:
添加用户映射:
bashecho "$(whoami):$(id -u):65536" | sudo tee -a /etc/subuid echo "$(whoami):$(id -g):65536" | sudo tee -a /etc/subgid
配置 Docker 守护进程(systemd 系统):
bashsystemctl edit docker.service
在配置文件中添加:
[Service] ExecStart= ExecStart=/usr/bin/dockerd --userns-remap="your-user-name" # 替换为实际用户名
详细说明参见 Docker 用户命名空间文档。
Shell 配置:Mac 默认终端使用登录 shell,需确保 ~/.bash_profile 加载 ~/.bashrc:
bashif [ -f ~/.bashrc ]; then source ~/.bashrc fi
SSH 代理支持:Docker for Mac 无法直接共享 ssh-agent 套接字,建议集成 docker-ssh-agent-forward,脚本已默认支持该方案。
以下功能在开发插件时可能存在兼容性问题,使用 edl 后可能需要重启相关服务或禁用:
通过设置 EDI_USE_EDI_DAEMON 为非空字符串启用常驻 Docker 守护进程,加速命令执行。
注意:使用
edl后需重启守护进程。
EDI_MOUNT_ONLY_USED_LINKED_MODULES:仅挂载使用的链接模块(可能影响 edl)。EDI_MOUNT_USED_NODE_MODULES_WITHOUT_SYMLINKS:直接挂载模块(需与上述变量同时设置,提升性能但不兼容 edl)。Mac 系统默认启用 docker-ssh-agent-forward。可通过 EDI_SSH_AGENT_CONTAINER 变量控制:设为空字符串禁用,Linux 系统设为非空字符串强制启用。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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