From 081013f321527abe0883710908166ec98443ba9e Mon Sep 17 00:00:00 2001 From: greg stone Date: Thu, 2 Mar 2023 21:07:56 +0000 Subject: [PATCH] adding env support for logs and data, and defaults in container image. --- docker/release/scripts/assemble.sh | 2 +- docker/release/targets/indra/indra.Dockerfile | 9 ++++++++- docker/scratch/root-fs.Dockerfile | 10 +++++++--- pkg/p2p/server.go | 6 ++++-- pkg/rpc/configure.go | 17 ++++++++--------- pkg/rpc/server.go | 2 ++ pkg/rpc/tunnel.go | 4 +--- 7 files changed, 31 insertions(+), 19 deletions(-) diff --git a/docker/release/scripts/assemble.sh b/docker/release/scripts/assemble.sh index bbf2a40a..7574bad2 100755 --- a/docker/release/scripts/assemble.sh +++ b/docker/release/scripts/assemble.sh @@ -45,7 +45,7 @@ for DOCKERFILE in $DOCKERFILES; do DOCKER_PLATFORM_TAG=$PLATFORM-dev fi - docker build --quiet --progress=plain --platform=$DOCKER_PLATFORM \ + docker build --quiet --platform=$DOCKER_PLATFORM \ --build-arg platform=$PLATFORM \ --build-arg version=$TARGET_TAG \ --build-arg scratch_version=$SCRATCH_PLATFORM_TAG \ diff --git a/docker/release/targets/indra/indra.Dockerfile b/docker/release/targets/indra/indra.Dockerfile index 830eaa82..f3dadee1 100644 --- a/docker/release/targets/indra/indra.Dockerfile +++ b/docker/release/targets/indra/indra.Dockerfile @@ -19,9 +19,16 @@ USER indra:indra # Set the data volumes #VOLUME ["/etc/indra"] #VOLUME ["/var/indra"] +#VOLUME ["/var/log/indra"] # :8333 indra peer-to-peer port # :8334 indra RPC port EXPOSE 8337 8338 -ENTRYPOINT ["/bin/indra", "--config-file=/etc/indra/indra.conf", "--data-dir=/var/indra/data", "--logs-dir=/var/indra/logs"] +ENV INDRA_CONF_FILE=/etc/indra/indra.conf +ENV INDRA_DATA_DIR=/var/indra +ENV INDRA_LOGS_DIR=/var/log/indra + +ENV INDRA_RPC_UNIX_LISTEN=/var/run/indra/indra.sock + +ENTRYPOINT ["/bin/indra"] diff --git a/docker/scratch/root-fs.Dockerfile b/docker/scratch/root-fs.Dockerfile index d919a084..acbc4408 100644 --- a/docker/scratch/root-fs.Dockerfile +++ b/docker/scratch/root-fs.Dockerfile @@ -111,14 +111,16 @@ RUN set -ex && echo "adding and permissioning /var directories" \ && mkdir -pv /var/lnd && chmod 750 /var/lnd && chown lnd:lnd /var/lnd \ && mkdir -pv /var/lnd/.lnd && chmod 750 /var/lnd/.lnd && chown lnd:lnd /var/lnd/.lnd \ && mkdir -pv /var/indra && chmod 750 /var/indra && chown indra:indra /var/indra \ - && mkdir -pv /var/run/indra && chmod 750 /var/run/indra && chown indra:indra /var/run/indra + && mkdir -pv /var/run/indra && chmod 750 /var/run/indra && chown indra:indra /var/run/indra \ + && mkdir -pv /var/log/indra && chmod 750 /var/log/indra && chown indra:indra /var/log/indra RUN set -ex && echo "copying /var directories to root filesystem" \ && cp -rp /var/btcwallet /tmp/root-fs/var/btcwallet \ && cp -rp /var/btcd /tmp/root-fs/var/btcd \ && cp -rp /var/lnd /tmp/root-fs/var/lnd \ && cp -rp /var/indra /tmp/root-fs/var/indra \ - && cp -rp /var/run /tmp/root-fs/var/run + && cp -rp /var/run /tmp/root-fs/var/run \ + && cp -rp /var/log /tmp/root-fs/var/log # DEBUG RUN set -ex && echo "checking /var directories on root filesystem" \ @@ -130,7 +132,9 @@ RUN set -ex && echo "checking /var directories on root filesystem" \ && ls -hal /tmp/root-fs/var/lnd \ && ls -hal /tmp/root-fs/var/lnd/.lnd \ && ls -hal /tmp/root-fs/var/indra \ - && ls -hal /tmp/root-fs/var/run/indra + && ls -hal /tmp/root-fs/var/run/indra \ + && ls -hal /tmp/root-fs/var/log \ + && ls -hal /tmp/root-fs/var/log/indra WORKDIR /tmp/root-fs diff --git a/pkg/p2p/server.go b/pkg/p2p/server.go index 6d1041c4..f31b8e16 100644 --- a/pkg/p2p/server.go +++ b/pkg/p2p/server.go @@ -88,8 +88,10 @@ func Shutdown() (err error) { log.I.Ln("shutting down p2p server") - if err = p2pHost.Close(); check(err) { - // continue + if p2pHost != nil { + if err = p2pHost.Close(); check(err) { + // continue + } } log.I.Ln("- p2p server shutdown complete") diff --git a/pkg/rpc/configure.go b/pkg/rpc/configure.go index fa4f95fb..07a815cc 100644 --- a/pkg/rpc/configure.go +++ b/pkg/rpc/configure.go @@ -6,24 +6,26 @@ import ( func configureUnixSocket() { - if viper.GetString(unixPathFlag) == "" { + unixPath = viper.GetString(unixPathFlag) + + if unixPath == "" { return } log.I.Ln("enabling rpc unix listener:") - log.I.F("- [/unix%s]", viper.GetString(unixPathFlag)) + log.I.F("- [/unix%s]", unixPath) isUnixSockEnabled = true } func configureTunnel() { - if !viper.GetBool(tunEnableFlag) { + isTunnelEnabled = viper.GetBool(tunEnableFlag) + + if !isTunnelEnabled { return } - enableTunnel() - log.I.Ln("enabling rpc tunnel") configureTunnelPort() @@ -32,9 +34,7 @@ func configureTunnel() { log.I.F("- [/ip4/0.0.0.0/udp/%d /ip6/:::/udp/%d]", viper.GetUint16(tunPortFlag), viper.GetUint16(tunPortFlag)) configureTunnelKey() - configurePeerWhitelist() - } func configureTunnelKey() { @@ -85,9 +85,8 @@ func configurePeerWhitelist() { pubKey.Decode(peer) - tunWhitelist = append(tunWhitelist, pubKey) - log.I.Ln("-", pubKey.Encode()) + tunWhitelist = append(tunWhitelist, pubKey) } } diff --git a/pkg/rpc/server.go b/pkg/rpc/server.go index 4b75bed6..c648a85e 100644 --- a/pkg/rpc/server.go +++ b/pkg/rpc/server.go @@ -45,6 +45,8 @@ func start() { var err error + createTunnel() + if err = startTunnel(server); check(err) { startupErrors <- err return diff --git a/pkg/rpc/tunnel.go b/pkg/rpc/tunnel.go index a4a9b578..abeab241 100644 --- a/pkg/rpc/tunnel.go +++ b/pkg/rpc/tunnel.go @@ -29,12 +29,10 @@ var ( tunnelMTU int = 1420 ) -func enableTunnel() { +func createTunnel() { var err error - isTunnelEnabled = true - if tunnel, network, err = netstack.CreateNetTUN([]netip.Addr{deviceRPCIP}, []netip.Addr{}, tunnelMTU); check(err) { startupErrors <- err return