From 871fd8c035ec6c737d128458491ccd5f8ff84f34 Mon Sep 17 00:00:00 2001 From: Pavel Sviderski Date: Wed, 27 Nov 2024 16:33:05 +1000 Subject: [PATCH] proxy uncloud.sock socket to tcp port when running machine in container --- Dockerfile | 1 + scripts/docker/entrypoint.sh | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/Dockerfile b/Dockerfile index 6f5da4ec..30211a24 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,6 +37,7 @@ RUN crane pull "${CORROSION_IMAGE}" /corrosion.tar FROM docker:27.3.1-dind AS machine RUN apk --no-cache add \ + socat \ wireguard-tools # Create system group and user 'uncloud'. RUN addgroup -S uncloud && adduser -SHD -h /nonexistent -G uncloud -g "" uncloud diff --git a/scripts/docker/entrypoint.sh b/scripts/docker/entrypoint.sh index b54c4775..1c281b66 100755 --- a/scripts/docker/entrypoint.sh +++ b/scripts/docker/entrypoint.sh @@ -9,4 +9,8 @@ echo "Docker in Docker is ready." echo "Loading corrosion image from /images/corrosion.tar..." docker load < /images/corrosion.tar +# Make machine API accessible from the host via port publishing. +echo "Proxying Uncloud API port 51000/tcp to Unix socket /run/uncloud/uncloud.sock..." +socat TCP-LISTEN:51000,reuseaddr,fork,bind="$(hostname -i)" UNIX-CONNECT:/run/uncloud/uncloud.sock & + exec "$@"