Agent Skills
› nixopus/nixopus
› elixir-deploy
elixir-deploy
GitHub提供 Elixir/Phoenix 应用的构建与部署指南,涵盖版本检测、依赖编译、Mix Release 生成及 Dockerfile 编写模式,用于自动化部署流程。
Trigger Scenarios
需要构建或部署 Elixir 项目时
检测到 mix.exs 文件时
生成 Phoenix 应用 Dockerfile 时
Install
npx skills add nixopus/nixopus --skill elixir-deploy -g -y
SKILL.md
Frontmatter
{
"name": "elixir-deploy",
"metadata": {
"version": "1.0"
},
"description": "Build and deploy Elixir and Phoenix applications — version detection, mix releases, and Dockerfile patterns. Use when deploying an Elixir or Phoenix project, or when mix.exs is detected."
}
Elixir Deployment
Detection
Project is Elixir if mix.exs exists in the root.
Versions
Elixir
.elixir-versionfilemix.exs→ detected from projectmise.tomlor.tool-versions- Defaults to 1.18
Erlang (OTP)
.erlang-versionfile- Resolved automatically from Elixir version
mise.tomlor.tool-versions- Defaults to 27.3
Build
Build Process
- Install Elixir and Erlang
- Get and compile deps:
mix deps.get --only prodandmix deps.compile - If defined:
mix assets.setup - If defined:
mix assets.deployandmix ecto.deploy - Compile and release:
mix compileandmix release
Start Command
/app/_build/prod/rel/<app_name>/bin/<app_name> start
Framework Detection
| Signal | Framework |
|---|---|
mix.exs + phoenix dep |
Phoenix |
config/config.exs |
Standard Elixir app |
config/runtime.exs |
Runtime config (prod) |
Phoenix-Specific
- Asset pipeline: Node.js or esbuild; run
mix assets.setupandmix assets.deploy - Ecto:
mix ecto.setup(dev) /mix ecto.deploy(prod) - Release:
mix releaseproduces standalone tarball/binary
Install Stage Optimization
Copy in order:
mix.exs,mix.lockconfig/(full config directory)lib/,test/,assets/(Phoenix)
Base Images
| Stage | Image |
|---|---|
| Build | hexpm/elixir:1.18-erlang-27.3 or elixir:1.18 |
| Runtime | debian:bookworm-slim + extracted release, or elixir:1.18-slim |
Dockerfile Patterns
Phoenix Release
FROM hexpm/elixir:1.18-erlang-27.3 AS build
WORKDIR /app
RUN mix local.hex --force && mix local.rebar --force
COPY mix.exs mix.lock ./
RUN mix deps.get --only prod && mix deps.compile
COPY config config
COPY lib lib
COPY priv priv
COPY assets assets
RUN mix assets.deploy
RUN mix compile
RUN mix release
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y libssl3 ca-certificates && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/_build/prod/rel/my_app ./
EXPOSE 4000
CMD ["./bin/my_app", "start"]
Plain Elixir (no Phoenix)
FROM hexpm/elixir:1.18-erlang-27.3 AS build
WORKDIR /app
COPY mix.exs mix.lock ./
RUN mix deps.get --only prod && mix deps.compile
COPY config config
COPY lib lib
RUN mix compile && mix release
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y libssl3 ca-certificates && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=build /app/_build/prod/rel/my_app ./
CMD ["./bin/my_app", "start"]
Version History
- cf05d97 Current 2026-08-20 14:51


