From cee8975be050fa72b9626d48043550efd3e5e223 Mon Sep 17 00:00:00 2001
From: Gilles Filippini <pini@debian.org>
Date: Sun, 19 Feb 2023 02:12:03 +0100
Subject: [PATCH] docker: add DUNITER_PRUNING_PROFILE variable

Values:
* `default`: default duniter pruning configuration
* `archive`: set `--state-pruning archive --blocks-pruning archive`
* `light`: set `--blocks-pruning 14400` (keep one day of blocks history)
---
 docker/README.md         |  1 +
 docker/docker-entrypoint | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/docker/README.md b/docker/README.md
index 32567e667..e93db2e0f 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -69,6 +69,7 @@ volumes:
 | `DUNITER_VALIDATOR` | Boolean (`true` / `false`) to run the node in validator mode. Configure the polkadot options `--validator --rpc-methods Unsafe`. | `false` |
 | `DUNITER_DISABLE_PROMETHEUS` | Boolean to disable the Prometheus endpoint on port 9615. | `false` |
 | `DUNITER_DISABLE_TELEMETRY` | Boolean to disable connecting to the Substrate tememetry server. | `false` |
+| `DUNITER_PRUNING_PROFILE` | * `default`<br> * `archive`: keep all blocks and state blocks<br> * `light`: keep only last 256 state blocks and last 14400 blocks (one day duration) | `default` |
 
 # Other duniter options
 
diff --git a/docker/docker-entrypoint b/docker/docker-entrypoint
index 05b9497d0..8e751d47b 100755
--- a/docker/docker-entrypoint
+++ b/docker/docker-entrypoint
@@ -55,6 +55,21 @@ if [ "$DUNITER_DISABLE_TELEMETRY" = true ]; then
   set -- "$@" --no-telemetry
 fi
 
+DUNITER_PRUNING_PROFILE="${DUNITER_PRUNING_PROFILE:-default}"
+case "$DUNITER_PRUNING_PROFILE" in
+  default)
+    ;;
+  archive)
+    set -- "$@" --state-pruning archive --blocks-pruning archive
+    ;;
+  light)
+    set -- "$@" --blocks-pruning 14400
+    ;;
+  *)
+    echo "ERROR: ignoring unknown DUNITER_PRUNING_PROFILE value '$DUNITER_PRUNING_PROFILE'" >&2
+    ;;
+esac
+
 DUNITER_CHAIN_NAME="${DUNITER_CHAIN_NAME:-dev}"
 case "$DUNITER_CHAIN_NAME" in
   dev)
-- 
GitLab