Skip to content

Commit

Permalink
fix(*) only mount logs directory and use a different prefix (#474)
Browse files Browse the repository at this point in the history
  • Loading branch information
fffonion authored and Tieske committed Dec 13, 2024
1 parent 734a21d commit e0c9fde
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 6 deletions.
6 changes: 6 additions & 0 deletions assets/docker-compose-linux-extend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: '3.5'

services:
kong:
volumes:
- ${PONGO_WD}/servroot:/kong-prefix
6 changes: 6 additions & 0 deletions assets/docker-compose-nonlinux-extend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: '3.5'

services:
kong:
volumes:
- ${PONGO_WD}/servroot/logs:/kong-prefix/logs
11 changes: 5 additions & 6 deletions assets/pongo_entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,7 @@ if [ -z "$KONG_DNS_RESOLVER" ]; then
fi
fi

# set working dir in mounted volume to be able to check the logs
export KONG_PREFIX=/kong-plugin/servroot
export KONG_PREFIX=/kong-prefix

# set debug logs; specifically for the 'shell' command, tests already have it
export KONG_LOG_LEVEL=debug
Expand Down Expand Up @@ -106,14 +105,14 @@ fi

# Modify the 'kong' user to match the ownership of the mounted plugin folder
# Kong will not start because of permission errors if it cannot write to the
# /kong-plugin/servroot folder (which resides on the mount).
# /kong-prefix folder (which created by volume mount /kong-prefix/logs by root).
# Since those permissions are controlled by the host, we update the 'kong' user
# inside the container to match the UID and GID.
if [ -d /kong-plugin ]; then
if [ -d /kong-prefix ]; then
KONG_UID=$(id -u kong)
KONG_GID=$(id -g kong)
MOUNT_UID=$(stat -c "%u" /kong-plugin)
MOUNT_GID=$(stat -c "%g" /kong-plugin)
MOUNT_UID=$(stat -c "%u" /kong-prefix)
MOUNT_GID=$(stat -c "%g" /kong-prefix)
if [ ! "$KONG_GID" = "$MOUNT_GID" ]; then
# change KONG_GID to the ID of the folder owner group
groupmod -g "$MOUNT_GID" --non-unique kong
Expand Down
10 changes: 10 additions & 0 deletions pongo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ function globals {
IMAGE_BASE_PREFIX="kong-pongo-"
IMAGE_BASE_NAME=$IMAGE_BASE_PREFIX$PONGO_VERSION

# macOS or WSL working on a drvfs mount doesn't support named pipes or Unix Domain Socket
if [ "$(uname -s)" == "Darwin" ] || ! (rm -f .pongo_test.sock; mkfifo .pongo_test.sock) 2>/dev/null; then
rm -f .pongo_test.sock
DOCKER_COMPOSE_FILES="$DOCKER_COMPOSE_FILES -f ${LOCAL_PATH}/assets/docker-compose-nonlinux-extend.yml"
else
DOCKER_COMPOSE_FILES="$DOCKER_COMPOSE_FILES -f ${LOCAL_PATH}/assets/docker-compose-linux-extend.yml"
fi

IMAGE_BASE_NAME=kong-pongo-test

# the path where the plugin source is located, as seen from Pongo (this script)
KONG_TEST_PLUGIN_PATH=$(realpath .)

Expand Down

0 comments on commit e0c9fde

Please sign in to comment.