
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该Docker镜像提供了开箱即可在Docker中运行Phoenix应用所需的一切。它基于alpine-erlang镜像构建,安装了Elixir(1.11.0)、Node.js(12.18.x)、Hex和Rebar,能够在构建过程中处理Node和Elixir依赖的编译。
/opt/app并全局可读写该镜像设计用于非特权环境,默认主目录为/opt/app。建议在Dockerfile末尾添加USER default指令,使应用在非特权用户 context 下运行。
通过以下命令直接启动镜像并进入Elixir交互环境:
bashdocker run --rm -it --user=1000001 bitwalker/alpine-elixir-phoenix iex
运行后将进入Elixir交互终端:
Erlang/OTP 23 [erts-11.1.1] [source] [64-bit] [smp:3:3] [ds:3:3:10] [async-threads:1] Interactive Elixir (1.11.0) - press Ctrl+C to exit (type h() ENTER for help) iex(1)>
创建自定义Dockerfile扩展此镜像:
dockerfileFROM bitwalker/alpine-elixir-phoenix:latest # 设置暴露端口 EXPOSE 5000 ENV PORT=5000 MIX_ENV=prod # 缓存Elixir依赖 ADD mix.exs mix.lock ./ RUN mix do deps.get, deps.compile # 缓存Node.js依赖 ADD assets/package.json assets/ RUN cd assets && npm install ADD . . # 构建前端资源、编译应用并生成静态资源摘要 RUN cd assets/ && \ npm run deploy && \ cd - && \ mix do compile, phx.digest USER default CMD ["mix", "phx.server"]
构建镜像时,建议在项目根目录创建.dockerignore文件,包含以下内容:
_build deps assets/node_modules test
这将减小镜像体积并避免依赖编译问题。
可结合多阶段构建和bitwalker/alpine-elixir镜像显著减小最终镜像体积:
dockerfileFROM bitwalker/alpine-elixir-phoenix:latest AS phx-builder # 设置环境变量 ENV MIX_ENV=prod # 缓存Elixir依赖 ADD mix.exs mix.lock ./ RUN mix do deps.get, deps.compile # 缓存Node.js依赖 ADD assets/package.json assets/ RUN cd assets && npm install ADD . . # 构建前端资源、编译应用并生成静态资源摘要 RUN cd assets/ && \ npm run deploy && \ cd - && \ mix do compile, phx.digest FROM bitwalker/alpine-elixir:latest EXPOSE 5000 ENV PORT=5000 MIX_ENV=prod # 从构建阶段复制必要文件 COPY --from=phx-builder /opt/app/_build /opt/app/_build COPY --from=phx-builder /opt/app/priv /opt/app/priv COPY --from=phx-builder /opt/app/config /opt/app/config COPY --from=phx-builder /opt/app/lib /opt/app/lib COPY --from=phx-builder /opt/app/deps /opt/app/deps COPY --from=phx-builder /opt/app/.mix /opt/app/.mix COPY --from=phx-builder /opt/app/mix.* /opt/app/ # 或者复制整个目录(注意:这会包含非构建文件) # COPY --from=phx-builder /opt/app /opt/app USER default CMD ["mix", "phx.server"]
MIT
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务