Skip to content

Commit f97e580

Browse files
hyperpolymathclaude
andcommitted
chore: add stapeln.toml layer-based container definition
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 1afe17e commit f97e580

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

stapeln.toml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# stapeln.toml — Layer-based container build for phronesis
3+
#
4+
# stapeln builds containers as composable layers (German: "to stack").
5+
# Each layer is independently cacheable, verifiable, and signable.
6+
7+
[metadata]
8+
name = "phronesis"
9+
version = "0.1.0"
10+
description = "Phronesis — Elixir-based distributed consensus system"
11+
author = "Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"
12+
license = "PMPL-1.0-or-later"
13+
registry = "ghcr.io/hyperpolymath"
14+
15+
[build]
16+
containerfile = "Containerfile"
17+
context = "."
18+
runtime = "podman"
19+
20+
# Layer definitions — Elixir/Phoenix mix release pattern
21+
[layers.base]
22+
description = "Chainguard wolfi-base image for Elixir build"
23+
from = "cgr.dev/chainguard/wolfi-base:latest"
24+
cache = true
25+
verify = true
26+
27+
[layers.build]
28+
description = "Elixir/Erlang build dependencies and mix release"
29+
extends = "base"
30+
cache = true
31+
32+
[layers.mix-release]
33+
description = "Compiled Elixir application release (_build/prod/rel/phronesis)"
34+
extends = "build"
35+
cache = false
36+
37+
[layers.runtime]
38+
description = "Minimal runtime image with Erlang/OTP libraries"
39+
from = "cgr.dev/chainguard/wolfi-base:latest"
40+
cache = true
41+
verify = true
42+
43+
[layers.health]
44+
description = "Health check: verifies phronesis application is started via RPC"
45+
extends = "runtime"
46+
cache = false

0 commit comments

Comments
 (0)