Skip to content
Snippets Groups Projects
  • Gilles Filippini's avatar
    bae38a79
    docker: map more environment variables · bae38a79
    Gilles Filippini authored
    DUNITER_LISTEN_ADDR: --listen-addr <value> (optional, no default)
    DUNITER_ROC_CORS: --rpc-cors <value> (optional, default: all)
    DUNITER_VALIDATOR: --validator --rpc-methods Unsafe (optional, boolean,
    default false)
    DUNITER_DISABLE_TELEMETRY: --no-telemetry (optional, boolean, default false)
    bae38a79
    History
    docker: map more environment variables
    Gilles Filippini authored
    DUNITER_LISTEN_ADDR: --listen-addr <value> (optional, no default)
    DUNITER_ROC_CORS: --rpc-cors <value> (optional, default: all)
    DUNITER_VALIDATOR: --validator --rpc-methods Unsafe (optional, boolean,
    default false)
    DUNITER_DISABLE_TELEMETRY: --no-telemetry (optional, boolean, default false)
docker-entrypoint 1.80 KiB
#!/bin/bash

function boolean () {
  echo "$1" | sed -E 's/^(true|yes|1)$/true/i'
}

function ternary () {
  if [ $(boolean "$1") = true ]; then
    echo "$2"
  else
    echo "$3"
  fi
}

DUNITER_NODE_NAME="${DUNITER_NODE_NAME:-$DUNITER_INSTANCE_NAME}"
if [ -n "$DUNITER_NODE_NAME" ]; then
  set -- "$@" --name "$DUNITER_NODE_NAME"
fi

_DUNITER_KEY_FILE=/var/lib/duniter/node.key
set -- "$@" --node-key-file "$_DUNITER_KEY_FILE"

if [ ! -f "$_DUNITER_KEY_FILE" ]; then
  echo "Generating node key file '$_DUNITER_KEY_FILE'..."
  duniter key generate-node-key --file "$_DUNITER_KEY_FILE"
else
  echo "Node key file '$_DUNITER_KEY_FILE' exists."
fi
_DUNITER_PEER_ID="$(duniter key inspect-node-key --file "$_DUNITER_KEY_FILE")"
echo "Node peer ID is '$_DUNITER_PEER_ID'."

if [ -n "$DUNITER_PUBLIC_ADDR" ]; then
  set -- "$@" --public-addr "$DUNITER_PUBLIC_ADDR"
fi

if [ -n "$DUNITER_LISTEN_ADDR" ]; then
  set -- "$@" --listen-addr "$DUNITER_LISTEN_ADDR"
fi

DUNITER_RPC_CORS="${DUNITER_RPC_CORS:-all}"
set -- "$@" --rpc-cors "$DUNITER_RPC_CORS"

DUNITER_VALIDATOR=$(boolean "${DUNITER_VALIDATOR:-false}")
if [ "$DUNITER_VALIDATOR" = true ]; then
  set -- "$@" --rpc-methods Unsafe --validator
fi

DUNITER_DISABLE_PROMETHEUS=$(boolean "${DUNITER_DISABLE_PROMETHEUS:-false}")
if [ "$DUNITER_DISABLE_PROMETHEUS" = true ]; then
  set -- "$@" --no-prometheus
fi

DUNITER_DISABLE_TELEMETRY=$(boolean "${DUNITER_DISABLE_TELEMETRY:-false}")
if [ "$DUNITER_DISABLE_TELEMETRY" = true ]; then
  set -- "$@" --no-telemetry
fi

DUNITER_CHAIN_NAME="${DUNITER_CHAIN_NAME:-dev}"
case "$DUNITER_CHAIN_NAME" in
  dev)
    chain=(--dev)
    ;;
  *)
    chain=(--chain "$DUNITER_CHAIN_NAME")
    ;;
esac

set -- "$@" \
  "${chain[@]}" \
  -d /var/lib/duniter --unsafe-rpc-external --unsafe-ws-external

echo "Starting duniter with parameters:" "$@"
exec duniter "$@"