From 19602dc88ae0ba1573e75681142a52aba68ff534 Mon Sep 17 00:00:00 2001 From: Stas Kelvich Date: Sat, 12 Jun 2021 18:09:01 +0300 Subject: [PATCH] add wal_acceptor binary in Dockerfile --- Dockerfile | 1 + docker-entrypoint.sh | 14 +++++++++----- walkeeper/src/bin/wal_acceptor.rs | 11 +++++++++-- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index ccfa165166..16e3db5a1e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -94,3 +94,4 @@ ENV POSTGRES_DISTRIB_DIR /usr/local EXPOSE 6400 ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["pageserver"] diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index a1aba484ce..84adc116dd 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,7 +1,11 @@ #!/bin/sh -if [ ! -d "/data/timelines" ]; then - echo "Initializing pageserver data directory" - pageserver --init --workdir $ZENITH_REPO_DIR +if [ "$1" = 'pageserver' ]; then + if [ ! -d "/data/timelines" ]; then + echo "Initializing pageserver data directory" + pageserver --init --workdir $ZENITH_REPO_DIR + fi + echo "Staring pageserver at 0.0.0.0:6400" + pageserver -l 0.0.0.0:6400 --workdir $ZENITH_REPO_DIR +else + "$@" fi -echo "Staring pageserver at 0.0.0.0:6400" -pageserver -l 0.0.0.0:6400 --workdir $ZENITH_REPO_DIR diff --git a/walkeeper/src/bin/wal_acceptor.rs b/walkeeper/src/bin/wal_acceptor.rs index b762d84352..10a9632c3d 100644 --- a/walkeeper/src/bin/wal_acceptor.rs +++ b/walkeeper/src/bin/wal_acceptor.rs @@ -8,6 +8,7 @@ use log::*; use parse_duration::parse; use slog::Drain; use std::io; +use std::net::ToSocketAddrs; use std::path::{Path, PathBuf}; use std::thread; use std::time::Duration; @@ -94,11 +95,17 @@ fn main() -> Result<()> { } if let Some(addr) = arg_matches.value_of("listen") { - conf.listen_addr = addr.parse().unwrap(); + // TODO: keep addr vector in config and listen them all + // XXX: with our callmemaybe approach we need to set 'advertised address' + // as it is not always possible to listen it. Another reason to ditch callmemaybe. + let addrs: Vec<_> = addr.to_socket_addrs().unwrap().collect(); + conf.listen_addr = addrs[0]; } if let Some(addr) = arg_matches.value_of("pageserver") { - conf.pageserver_addr = Some(addr.parse().unwrap()); + // TODO: keep addr vector in config and check them all while connecting + let addrs: Vec<_> = addr.to_socket_addrs().unwrap().collect(); + conf.pageserver_addr = Some(addrs[0]); } if let Some(ttl) = arg_matches.value_of("ttl") {