From 8265517a96efa957601b11985951740f9b859adf Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Thu, 28 Mar 2024 17:09:59 -0400 Subject: [PATCH 1/2] fix: ensure files get created with the correct permissions when building with herokuish This will allow us to skip more chown operations - and hopefully eventually drop them completely. --- plugins/builder-herokuish/builder-build | 2 +- plugins/builder-herokuish/builder-release | 2 +- .../builder-herokuish/dockerfiles/builder-release.Dockerfile | 1 - plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile | 3 ++- plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile | 1 + plugins/builder-herokuish/pre-build | 4 +++- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/builder-herokuish/builder-build b/plugins/builder-herokuish/builder-build index 094d5a370..de11de1bb 100755 --- a/plugins/builder-herokuish/builder-build +++ b/plugins/builder-herokuish/builder-build @@ -48,7 +48,7 @@ trigger-builder-herokuish-builder-build() { local DOCKER_BUILD_LABEL_ARGS="--label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=com.dokku.app-name=$APP" DOKKU_APP_USER=$(config_get "$APP" DOKKU_APP_USER || true) DOKKU_APP_USER=${DOKKU_APP_USER:="herokuishuser"} - if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-herokuish/dockerfiles/copy-source.Dockerfile" --build-arg APP_IMAGE="$DOKKU_IMAGE" --build-arg DOKKU_APP_USER=$DOKKU_APP_USER -t $IMAGE "$SOURCECODE_WORK_DIR"; then + if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-herokuish/dockerfiles/copy-source.Dockerfile" --build-arg APP_IMAGE="$DOKKU_IMAGE" --build-arg "DOKKU_APP_USER=$DOKKU_APP_USER" --build-arg "TRACE=$DOKKU_TRACE" -t $IMAGE "$SOURCECODE_WORK_DIR"; then DOKKU_SKIP_IMAGE_CLEANUP_REGISTRATION=1 plugn trigger scheduler-register-retired "$APP" "$TAR_CID" dokku_log_warn "Failure extracting app code" return 1 diff --git a/plugins/builder-herokuish/builder-release b/plugins/builder-herokuish/builder-release index e8b845d3d..23e7d4ed5 100755 --- a/plugins/builder-herokuish/builder-release +++ b/plugins/builder-herokuish/builder-release @@ -36,7 +36,7 @@ trigger-builder-herokuish-builder-release() { DOKKU_APP_USER=$(config_get "$APP" DOKKU_APP_USER || true) DOKKU_APP_USER=${DOKKU_APP_USER:="herokuishuser"} - if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-herokuish/dockerfiles/builder-release.Dockerfile" --build-arg APP_IMAGE="$IMAGE" --build-arg DOKKU_APP_USER=$DOKKU_APP_USER -t "$IMAGE" "$TMP_WORK_DIR"; then + if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-herokuish/dockerfiles/builder-release.Dockerfile" --build-arg APP_IMAGE="$IMAGE" --build-arg "DOKKU_APP_USER=$DOKKU_APP_USER" -t "$IMAGE" "$TMP_WORK_DIR"; then dokku_log_warn "Failure injecting environment variables" return 1 fi diff --git a/plugins/builder-herokuish/dockerfiles/builder-release.Dockerfile b/plugins/builder-herokuish/dockerfiles/builder-release.Dockerfile index b6a59e631..aecc0872a 100644 --- a/plugins/builder-herokuish/dockerfiles/builder-release.Dockerfile +++ b/plugins/builder-herokuish/dockerfiles/builder-release.Dockerfile @@ -3,6 +3,5 @@ FROM $APP_IMAGE ARG DOKKU_APP_USER herokuishuser COPY --chown=$DOKKU_APP_USER 00-global-env.sh 01-app-env.sh /app/.profile.d/ -RUN chown -R "$DOKKU_APP_USER:$DOKKU_APP_USER" /app USER $DOKKU_APP_USER ENV HEROKUISH_SETUIDGUID false diff --git a/plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile b/plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile index 0bb8e9aae..7afe40b99 100644 --- a/plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile +++ b/plugins/builder-herokuish/dockerfiles/copy-source.Dockerfile @@ -2,7 +2,8 @@ ARG APP_IMAGE FROM $APP_IMAGE ARG DOKKU_APP_USER herokuishuser -RUN USER=$DOKKU_APP_USER /exec true +ARG TRACE +RUN TRACE=$TRACE USER=$DOKKU_APP_USER /exec true COPY --chown=$DOKKU_APP_USER . /app WORKDIR /app ENV HEROKUISH_DISABLE_CHOWN true diff --git a/plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile b/plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile index a2ab687ee..7099b46e2 100644 --- a/plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile +++ b/plugins/builder-herokuish/dockerfiles/pre-build.Dockerfile @@ -1,5 +1,6 @@ ARG APP_IMAGE FROM $APP_IMAGE +ARG DOKKU_APP_USER herokuishuser COPY --chown=$DOKKU_APP_USER .env.d /tmp/env COPY --chown=$DOKKU_APP_USER .env /app/.env diff --git a/plugins/builder-herokuish/pre-build b/plugins/builder-herokuish/pre-build index d2781eac8..2e2234d33 100755 --- a/plugins/builder-herokuish/pre-build +++ b/plugins/builder-herokuish/pre-build @@ -39,7 +39,9 @@ trigger-builder-herokuish-pre-build-buildpack() { echo "$dotenv_contents" >"$TMP_WORK_DIR/.env" config_export app "$APP" --format envfile --merged >>"$TMP_WORK_DIR/.env" - if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-herokuish/dockerfiles/pre-build.Dockerfile" --build-arg APP_IMAGE="$IMAGE" -t $IMAGE "$TMP_WORK_DIR"; then + DOKKU_APP_USER=$(config_get "$APP" DOKKU_APP_USER || true) + DOKKU_APP_USER=${DOKKU_APP_USER:="herokuishuser"} + if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-herokuish/dockerfiles/pre-build.Dockerfile" --build-arg APP_IMAGE="$IMAGE" --build-arg "DOKKU_APP_USER=$DOKKU_APP_USER" -t $IMAGE "$TMP_WORK_DIR"; then dokku_log_warn "Failure injecting BUILD_ENV into build environment" return 1 fi From d5d282677311a033f2fdeee0d3ac978aeb70b7ef Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Thu, 28 Mar 2024 18:23:41 -0400 Subject: [PATCH 2/2] chore: update herokuish --- contrib/dependencies.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/dependencies.json b/contrib/dependencies.json index d6f7cde31..5bfd68c71 100644 --- a/contrib/dependencies.json +++ b/contrib/dependencies.json @@ -96,11 +96,11 @@ }, { "name": "herokuish", - "version": "0.7.3", + "version": "0.8.0", "urls": { - "amd64": "https://github.com/gliderlabs/herokuish/releases/download/v0.7.3/herokuish_0.7.3_linux_x86_64.tgz", - "arm64": "https://github.com/gliderlabs/herokuish/releases/download/v0.7.3/herokuish_0.7.3_linux_x86_64.tgz", - "arm": "https://github.com/gliderlabs/herokuish/releases/download/v0.7.3/herokuish_0.7.3_linux_x86_64.tgz" + "amd64": "https://github.com/gliderlabs/herokuish/releases/download/v0.8.0/herokuish_0.8.0_linux_x86_64.tgz", + "arm64": "https://github.com/gliderlabs/herokuish/releases/download/v0.8.0/herokuish_0.8.0_linux_x86_64.tgz", + "arm": "https://github.com/gliderlabs/herokuish/releases/download/v0.8.0/herokuish_0.8.0_linux_x86_64.tgz" } } ]