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 "$@"