diff --git a/bitnami/spring-cloud-skipper/2/debian-10/Dockerfile b/bitnami/spring-cloud-skipper/2/debian-10/Dockerfile index ab5d86a92149..d5fe54f0e22d 100644 --- a/bitnami/spring-cloud-skipper/2/debian-10/Dockerfile +++ b/bitnami/spring-cloud-skipper/2/debian-10/Dockerfile @@ -19,7 +19,7 @@ RUN apt-get update && apt-get upgrade -y && \ COPY rootfs / RUN /opt/bitnami/scripts/spring-cloud-skipper/postunpack.sh ENV BITNAMI_APP_NAME="spring-cloud-skipper" \ - BITNAMI_IMAGE_VERSION="2.4.2-debian-10-r1" \ + BITNAMI_IMAGE_VERSION="2.4.2-debian-10-r2" \ PATH="/opt/bitnami/java/bin:/opt/bitnami/common/bin:$PATH" USER 1001 diff --git a/bitnami/spring-cloud-skipper/2/debian-10/prebuildfs/opt/bitnami/scripts/libfs.sh b/bitnami/spring-cloud-skipper/2/debian-10/prebuildfs/opt/bitnami/scripts/libfs.sh index c7c94c3ba988..257c4297590a 100644 --- a/bitnami/spring-cloud-skipper/2/debian-10/prebuildfs/opt/bitnami/scripts/libfs.sh +++ b/bitnami/spring-cloud-skipper/2/debian-10/prebuildfs/opt/bitnami/scripts/libfs.sh @@ -95,6 +95,22 @@ is_file_writable() { fi } +######################## +# Relativize a path +# arguments: +# $1 - path +# $2 - base +# returns: +# None +######################### +relativize() { + local -r path="${1:?missing path}" + local -r base="${2:?missing base}" + pushd / >/dev/null + realpath -q --no-symlinks --relative-base="$base" "$path" | sed -e 's|^/$|.|' -e 's|^/||' + popd >/dev/null +} + ######################## # Configure permisions and ownership recursively # Globals: diff --git a/bitnami/spring-cloud-skipper/2/debian-10/prebuildfs/opt/bitnami/scripts/libpersistence.sh b/bitnami/spring-cloud-skipper/2/debian-10/prebuildfs/opt/bitnami/scripts/libpersistence.sh index a7e977516d3a..dce83ffca153 100644 --- a/bitnami/spring-cloud-skipper/2/debian-10/prebuildfs/opt/bitnami/scripts/libpersistence.sh +++ b/bitnami/spring-cloud-skipper/2/debian-10/prebuildfs/opt/bitnami/scripts/libpersistence.sh @@ -36,16 +36,17 @@ persist_app() { return fi pushd "$install_dir" >/dev/null - local file_to_persist_destination file_to_persist_destination_folder + local file_to_persist_relative file_to_persist_destination file_to_persist_destination_folder local -r tmp_file="/tmp/perms.acl" for file_to_persist in "${files_to_persist[@]}"; do - file_to_persist_destination="${persist_dir}/${file_to_persist}" + file_to_persist_relative="$(relativize "$file_to_persist" "$install_dir")" + file_to_persist_destination="${persist_dir}/${file_to_persist_relative}" file_to_persist_destination_folder="$(dirname "$file_to_persist_destination")" # Get original permissions (except for the root directory, to avoid issues with volumes) - find "$file_to_persist" | grep -E -v '^\.$' | xargs getfacl -R > "$tmp_file" + find "$file_to_persist_relative" | grep -E -v '^\.$' | xargs getfacl -R > "$tmp_file" # Copy directories to the volume ensure_dir_exists "$file_to_persist_destination_folder" - cp -Lr --preserve=links "$file_to_persist" "$file_to_persist_destination_folder" + cp -Lr --preserve=links "$file_to_persist_relative" "$file_to_persist_destination_folder" # Restore permissions pushd "$persist_dir" >/dev/null if am_i_root; then @@ -84,11 +85,12 @@ restore_persisted_app() { warn "No persisted files are configured to be restored" return fi - local file_to_restore_origin file_to_restore_destination + local file_to_restore_relative file_to_restore_origin file_to_restore_destination for file_to_restore in "${files_to_restore[@]}"; do - # We use realpath to ensure that the case of '.' is covered and the directory is removed - file_to_restore_origin="$(realpath "${install_dir}/${file_to_restore}")" - file_to_restore_destination="$(realpath "${persist_dir}/${file_to_restore}")" + file_to_restore_relative="$(relativize "$file_to_restore" "$install_dir")" + # We use 'realpath --no-symlinks' to ensure that the case of '.' is covered and the directory is removed + file_to_restore_origin="$(realpath --no-symlinks "${install_dir}/${file_to_restore_relative}")" + file_to_restore_destination="$(realpath --no-symlinks "${persist_dir}/${file_to_restore_relative}")" rm -rf "$file_to_restore_origin" ln -sfn "$file_to_restore_destination" "$file_to_restore_origin" done diff --git a/bitnami/spring-cloud-skipper/README.md b/bitnami/spring-cloud-skipper/README.md index 9254811d60ca..ef3002e2ef45 100644 --- a/bitnami/spring-cloud-skipper/README.md +++ b/bitnami/spring-cloud-skipper/README.md @@ -39,7 +39,7 @@ Non-root container images add an extra layer of security and are generally recom Learn more about the Bitnami tagging policy and the difference between rolling tags and immutable tags [in our documentation page](https://docs.bitnami.com/tutorials/understand-rolling-tags-containers/). -* [`2-debian-10`, `2.4.2-debian-10-r1`, `2`, `2.4.2`, `latest` (2/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-spring-cloud-skipper/blob/2.4.2-debian-10-r1/2/debian-10/Dockerfile) +* [`2-debian-10`, `2.4.2-debian-10-r2`, `2`, `2.4.2`, `latest` (2/debian-10/Dockerfile)](https://github.com/bitnami/bitnami-docker-spring-cloud-skipper/blob/2.4.2-debian-10-r2/2/debian-10/Dockerfile) Subscribe to project updates by watching the [bitnami/spring-cloud-skipper GitHub repo](https://github.com/bitnami/bitnami-docker-spring-cloud-skipper).