
!GitHub tag (latest SemVer) !Docker Cloud Build Status
该项目旨在提供Docker化的Elixir/Phoenix开发环境,解决不同Elixir和Phoenix版本项目的开发环境一致性问题。随着Elixir和Phoenix的不断更新,多版本项目开发时易出现环境冲突,此镜像通过容器化方案,统一开发环境配置,简化多版本项目的开发流程。
db主机名访问./mix和./run脚本,简化容器内命令执行bash# 示例:克隆Phoenix 1.5.9版本的开发环境 git clone -b 1.5.9 https://github.com/nicbet/docker-phoenix ~/Projects/hello-phoenix
克隆仓库后,使用VS Code Remote Extension打开文件夹,将自动启动包含PostgreSQL数据库的完整开发环境。详情参见VS Code Remote Containers文档。
遵循https://gist.github.com/nicbet/102f16359828405ce34ca083976986e1%E6%8C%87%E5%8D%97%EF%BC%8C%E5%8F%AF%E5%9F%BA%E4%BA%8EAlpine Linux构建最小化Docker发布镜像(Phoenix Web应用约38MB)。
进入克隆目录:
bashcd ~/Projects/hello-phoenix
初始化新Phoenix应用(将在src/目录下创建名为hello的应用):
bash./mix phx.new . --app hello
注意事项:
--app <name>指定应用名称,否则Phoenix会使用目标目录名(此处为.)作为应用名/app目录已存在时,回答Y即可phx.new命令,替代已废弃的phoenix.new创建src/目录(仓库默认不含此目录):
bashmkdir src
将现有Phoenix应用代码复制到src/目录
配置准备
docker-compose.yml定义了名为db的PostgreSQL服务,可通过db主机名访问。需修改Ecto配置文件src/config/dev.exs指向数据库容器:
elixir# 配置数据库连接 config :test, Test.Repo, adapter: Ecto.Adapters.Postgres, username: "postgres", password: "postgres", database: "test_dev", hostname: "db", # 指向db容器 pool_size: 10
初始化数据库
创建开发数据库:
bash./mix ecto.create
执行数据库迁移(适用于现有应用):
bash./mix ecto.migrate
使用以下命令启动应用:
bashdocker-compose up
应用启动后可通过 http://localhost:4000 访问。
使用./run脚本执行容器内非mix命令,例如:
bash./run iex -S mix
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务