From 444571c311b490315d1a276bd89dab0a7f703fde Mon Sep 17 00:00:00 2001 From: Djeex Date: Wed, 24 Sep 2025 12:32:33 +0200 Subject: [PATCH] Fixer wrong variable usage + better logs --- entrypoint.sh | 56 +++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/entrypoint.sh b/entrypoint.sh index 6d80788..1979fb5 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -4,7 +4,9 @@ set -e # Set default values if not provided TARGET_HOST=${TARGET_HOST} TARGET_PORT=${TARGET_PORT} -UNIX_SOCKET_PATH=${UNIX_SOCKET_PATH:-/socket/docker.sock} +UNIX_SOCKET_PATH=${UNIX_SOCKET_PATH} +UNIX_SOCKET_NAME=$(basename "$UNIX_SOCKET_PATH") +HOST_SOCKET_PATH=${HOST_SOCKET_PATH} # Validate required environment variables if [ -z "$TARGET_HOST" ]; then @@ -17,28 +19,57 @@ if [ -z "$TARGET_PORT" ]; then exit 1 fi +if [ -z "$UNIX_SOCKET_PATH" ]; then + echo "ERROR: UNIX_SOCKET_PATH environment variable is required" + exit 1 +fi + +if [ -z "$HOST_SOCKET_PATH" ]; then + echo "ERROR: HOST_SOCKET_PATH environment variable is required" + exit 1 +fi + echo "Starting socat proxy..." echo "UNIX socket: $UNIX_SOCKET_PATH" echo "TCP target: $TARGET_HOST:$TARGET_PORT" +echo "HOST path: $HOST_SOCKET_PATH" +echo "Full socket path: $FULL_SOCKET_PATH" # Check if socket file/folder exists and handle it -if [ -e "$UNIX_SOCKET_PATH" ]; then - echo "Socket file/folder $UNIX_SOCKET_PATH exists, removing it..." - rm -rf "$UNIX_SOCKET_PATH" +FULL_SOCKET_PATH="$HOST_SOCKET_PATH/$UNIX_SOCKET_NAME" +if [ -e "$FULL_SOCKET_PATH" ]; then + echo "Socket file/folder $FULL_SOCKET_PATH exists, removing it..." + if rm -rf "$FULL_SOCKET_PATH"; then + echo "SUCCESS: Removed existing socket $FULL_SOCKET_PATH" + else + echo "ERROR: Failed to remove existing socket $FULL_SOCKET_PATH" + exit 1 + fi fi echo "Creating socket directory structure..." # Create directory if needed -mkdir -p "$(dirname "$UNIX_SOCKET_PATH")" +if mkdir -p "$HOST_SOCKET_PATH"; then + echo "SUCCESS: Created directory $HOST_SOCKET_PATH" +else + echo "ERROR: Failed to create directory $HOST_SOCKET_PATH" + exit 1 +fi echo "Creating socket with netcat..." # Create socket with nc -lU in background and then kill it to create the socket file -timeout 1 nc -lU "$UNIX_SOCKET_PATH" || true +if timeout 1 nc -lU "$FULL_SOCKET_PATH" 2>/dev/null || true; then + echo "SUCCESS: Socket created at $FULL_SOCKET_PATH" +else + echo "WARNING: Socket creation with netcat had issues, but continuing..." +fi echo "Testing connection to target..." # Test if we can reach the target before starting socat if ! nc -z "$TARGET_HOST" "$TARGET_PORT" 2>/dev/null; then echo "WARNING: Cannot connect to $TARGET_HOST:$TARGET_PORT - socat will retry automatically" +else + echo "SUCCESS: Connection to $TARGET_HOST:$TARGET_PORT is working" fi # Signal handler for graceful shutdown @@ -58,11 +89,14 @@ trap cleanup SIGTERM SIGINT echo "Starting socat proxy..." # Start socat with verbose logging and redirect to stdout/stderr -socat -d -d UNIX-LISTEN:$UNIX_SOCKET_PATH,fork,unlink-early TCP:$TARGET_HOST:$TARGET_PORT & -SOCAT_PID=$! - -echo "Socat started with PID: $SOCAT_PID" -echo "Container is ready and running..." +if socat -d -d UNIX-LISTEN:$UNIX_SOCKET_PATH,fork,unlink-early TCP:$TARGET_HOST:$TARGET_PORT & then + SOCAT_PID=$! + echo "SUCCESS: Socat started with PID: $SOCAT_PID" + echo "Container is ready and running..." +else + echo "ERROR: Failed to start socat proxy" + exit 1 +fi # Keep the script alive and wait for socat process while kill -0 "$SOCAT_PID" 2>/dev/null; do