configs/nym: fix entrypoint and host-side binary download for build
Drop unsupported --no-banner; COPY pre-fetched nym-node; ignore binary/env/data.
This commit is contained in:
parent
4775d106cd
commit
798d8aaf51
4 changed files with 21 additions and 25 deletions
3
configs/nym/.gitignore
vendored
Normal file
3
configs/nym/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
nym-node
|
||||||
|
.env
|
||||||
|
data/
|
||||||
|
|
@ -1,39 +1,26 @@
|
||||||
# koopa-nym — nym-node (nym.com mixnet / NymVPN network)
|
# koopa-nym — nym-node (nym.com mixnet / NymVPN network)
|
||||||
# Docs: https://nym.com/docs/operators/nodes/nym-node
|
# Fetch binary on host first (see scripts/nym/build.sh), then:
|
||||||
|
# podman build -t localhost/koopa-nym:latest -f Containerfile .
|
||||||
FROM docker.io/library/debian:bookworm-slim
|
FROM docker.io/library/debian:bookworm-slim
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive \
|
ENV DEBIAN_FRONTEND=noninteractive \
|
||||||
NYM_HOME=/var/lib/nym \
|
NYM_HOME=/var/lib/nym \
|
||||||
PATH=/usr/local/bin:$PATH
|
PATH=/usr/local/bin:$PATH
|
||||||
|
|
||||||
# Pin via build-arg when a new binary is released:
|
|
||||||
# https://github.com/nymtech/nym/releases
|
|
||||||
ARG NYM_NODE_VERSION=1.35.0
|
|
||||||
ARG NYM_NODE_URL=""
|
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
ca-certificates curl ca-certificates-java \
|
ca-certificates libssl3 \
|
||||||
libssl3 \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
&& mkdir -p /var/lib/nym /usr/local/bin
|
&& mkdir -p /var/lib/nym /usr/local/bin
|
||||||
|
|
||||||
# Prefer explicit URL; else GitHub release asset pattern for linux x86_64.
|
# Pre-downloaded on host into build context as ./nym-node
|
||||||
RUN set -eux; \
|
COPY nym-node /usr/local/bin/nym-node
|
||||||
if [ -n "$NYM_NODE_URL" ]; then \
|
RUN chmod +x /usr/local/bin/nym-node \
|
||||||
curl -fsSL -o /usr/local/bin/nym-node "$NYM_NODE_URL"; \
|
&& /usr/local/bin/nym-node --version || true
|
||||||
else \
|
|
||||||
curl -fsSL -o /usr/local/bin/nym-node \
|
|
||||||
"https://github.com/nymtech/nym/releases/download/nym-binaries-v${NYM_NODE_VERSION}/nym-node"; \
|
|
||||||
fi; \
|
|
||||||
chmod +x /usr/local/bin/nym-node; \
|
|
||||||
/usr/local/bin/nym-node --version || true
|
|
||||||
|
|
||||||
COPY entrypoint.sh /usr/local/bin/nym-entrypoint
|
COPY entrypoint.sh /usr/local/bin/nym-entrypoint
|
||||||
RUN chmod +x /usr/local/bin/nym-entrypoint
|
RUN chmod +x /usr/local/bin/nym-entrypoint
|
||||||
|
|
||||||
# Defaults inside container (host maps different ports — see compose.yml)
|
|
||||||
EXPOSE 1789/udp 1789/tcp 1790 8080 9000 51822/udp
|
EXPOSE 1789/udp 1789/tcp 1790 8080 9000 51822/udp
|
||||||
|
|
||||||
WORKDIR /var/lib/nym
|
WORKDIR /var/lib/nym
|
||||||
ENTRYPOINT ["/usr/local/bin/nym-entrypoint"]
|
ENTRYPOINT ["/usr/local/bin/nym-entrypoint"]
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ VERLOC_BIND="${NYMNODE_VERLOC_BIND_ADDRESS:-[::]:1790}"
|
||||||
ENTRY_BIND="${NYMNODE_ENTRY_BIND_ADDRESS:-[::]:9000}"
|
ENTRY_BIND="${NYMNODE_ENTRY_BIND_ADDRESS:-[::]:9000}"
|
||||||
ACCEPT_TC="${NYMNODE_ACCEPT_OPERATOR_TERMS:-true}"
|
ACCEPT_TC="${NYMNODE_ACCEPT_OPERATOR_TERMS:-true}"
|
||||||
|
|
||||||
ARGS=(run --id "$ID" --mode "$MODE" --no-banner)
|
ARGS=(run --id "$ID" --mode "$MODE")
|
||||||
ARGS+=(--http-bind-address "$HTTP_BIND")
|
ARGS+=(--http-bind-address "$HTTP_BIND")
|
||||||
ARGS+=(--mixnet-bind-address "$MIX_BIND")
|
ARGS+=(--mixnet-bind-address "$MIX_BIND")
|
||||||
ARGS+=(--verloc-bind-address "$VERLOC_BIND")
|
ARGS+=(--verloc-bind-address "$VERLOC_BIND")
|
||||||
|
|
@ -32,14 +32,12 @@ if [ -n "$HOSTNAME_OPT" ]; then
|
||||||
fi
|
fi
|
||||||
if [ "$WG" = "true" ] || [ "$WG" = "1" ]; then
|
if [ "$WG" = "true" ] || [ "$WG" = "1" ]; then
|
||||||
ARGS+=(--wireguard-enabled true)
|
ARGS+=(--wireguard-enabled true)
|
||||||
# containers often lack kernel WG
|
|
||||||
ARGS+=(--wireguard-userspace true)
|
ARGS+=(--wireguard-userspace true)
|
||||||
fi
|
fi
|
||||||
if [ "$ACCEPT_TC" = "true" ] || [ "$ACCEPT_TC" = "1" ]; then
|
if [ "$ACCEPT_TC" = "true" ] || [ "$ACCEPT_TC" = "1" ]; then
|
||||||
ARGS+=(--accept-operator-terms-and-conditions)
|
ARGS+=(--accept-operator-terms-and-conditions)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extra flags from operator (space-separated)
|
|
||||||
if [ -n "${NYMNODE_EXTRA_ARGS:-}" ]; then
|
if [ -n "${NYMNODE_EXTRA_ARGS:-}" ]; then
|
||||||
# shellcheck disable=SC2206
|
# shellcheck disable=SC2206
|
||||||
EXTRA=( $NYMNODE_EXTRA_ARGS )
|
EXTRA=( $NYMNODE_EXTRA_ARGS )
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,18 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Build localhost/koopa-nym:latest from configs/nym/Containerfile
|
# Download nym-node + build localhost/koopa-nym:latest
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
ROOT=$(cd "$(dirname "$0")/../.." && pwd)
|
ROOT=$(cd "$(dirname "$0")/../.." && pwd)
|
||||||
SRC="${NYM_SRC:-$ROOT/configs/nym}"
|
SRC="${NYM_SRC:-$ROOT/configs/nym}"
|
||||||
TAG="${NYM_IMAGE:-localhost/koopa-nym:latest}"
|
TAG="${NYM_IMAGE:-localhost/koopa-nym:latest}"
|
||||||
|
REL="${NYM_RELEASE_TAG:-nym-binaries-v2026.13-ziller}"
|
||||||
|
URL="${NYM_NODE_URL:-https://github.com/nymtech/nym/releases/download/${REL}/nym-node}"
|
||||||
cd "$SRC"
|
cd "$SRC"
|
||||||
|
if [ ! -x nym-node ] || [ "${NYM_FORCE_DOWNLOAD:-0}" = "1" ]; then
|
||||||
|
echo "download $URL"
|
||||||
|
curl -fsSL -L -o nym-node.tmp "$URL"
|
||||||
|
chmod +x nym-node.tmp
|
||||||
|
mv nym-node.tmp nym-node
|
||||||
|
fi
|
||||||
|
./nym-node --version || true
|
||||||
podman build -t "$TAG" -f Containerfile .
|
podman build -t "$TAG" -f Containerfile .
|
||||||
echo "built $TAG"
|
echo "built $TAG"
|
||||||
podman image inspect "$TAG" --format '{{.Id}} {{.Created}}' 2>/dev/null || true
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue