
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=http://host:8080 # 指定端口启动 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 https://github.com/madnificent/docker-ember.git echo "export PATH=\$PATH:`pwd`/docker-ember/bin" >> ~/.bashrc source ~/.bashrc
建议使用 brew 安装脚本以解决 Docker for Mac 特定问题:
bash# 参考:https://github.com/mu-semtech/homebrew-scripts
通过 ~/.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 套接字,建议集成 https://github.com/10eTechnology/docker-ssh-agent-forward%EF%BC%8C%E8%84%9A%E6%9C%AC%E5%B7%B2%E9%BB%98%E8%AE%A4%E6%94%AF%E6%8C%81%E8%AF%A5%E6%96%B9%E6%A1%88%E3%80%82
以下功能在开发插件时可能存在兼容性问题,使用 edl 后可能需要重启相关服务或禁用:
Live daemon
通过设置 EDI_USE_EDI_DAEMON 为非空字符串启用常驻 Docker 守护进程,加速命令执行。
注意:使用
edl后需重启守护进程。
链接模块优化
EDI_MOUNT_ONLY_USED_LINKED_MODULES:仅挂载使用的链接模块(可能影响 edl)。EDI_MOUNT_USED_NODE_MODULES_WITHOUT_SYMLINKS:直接挂载模块(需与上述变量同时设置,提升性能但不兼容 edl)。SSH agent 容器
Mac 系统默认启用 https://github.com/10eTechnology/docker-ssh-agent-forward%E3%80%82%E5%8F%AF%E9%80%9A%E8%BF%87 EDI_SSH_AGENT_CONTAINER 变量控制:设为空字符串禁用,Linux 系统设为非空字符串强制启用。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务