From ea86a9f2cabb1d233edb40e1457a75f138eb08e8 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Wed, 6 Oct 2021 03:07:40 -0400 Subject: [PATCH] fix: ensure pack is run as root user when building apps in docker Without this, using the pack builder fails since it cannot communicate with a root-mounted docker socket. --- docker/etc/sudoers.d/dokku-docker | 2 +- docker/usr/local/bin/pack | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100755 docker/usr/local/bin/pack diff --git a/docker/etc/sudoers.d/dokku-docker b/docker/etc/sudoers.d/dokku-docker index d5677f34f..ae9a60f3f 100644 --- a/docker/etc/sudoers.d/dokku-docker +++ b/docker/etc/sudoers.d/dokku-docker @@ -1 +1 @@ -dokku ALL=NOPASSWD:SETENV:/usr/bin/docker,/usr/bin/docker-image-labeler +dokku ALL=NOPASSWD:SETENV:/usr/bin/docker,/usr/bin/docker-image-labeler,/usr/bin/pack diff --git a/docker/usr/local/bin/pack b/docker/usr/local/bin/pack new file mode 100755 index 000000000..2379ef71e --- /dev/null +++ b/docker/usr/local/bin/pack @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set -eo pipefail +[[ $TRACE ]] && set -x + +main() { + declare desc="re-runs pack commands as sudo" + local PACK_BIN="" + if [[ -x "/usr/bin/pack" ]]; then + PACK_BIN="/usr/bin/pack" + fi + + if [[ -z "$PACK_BIN" ]]; then + echo "! No pack binary found" 1>&2 + exit 1 + fi + + sudo -E "$PACK_BIN" "$@" +} + +main "$@"