diff --git a/scripts/build-to-publish.sh b/scripts/build-to-publish.sh index b9e5cbcc..7931c943 100644 --- a/scripts/build-to-publish.sh +++ b/scripts/build-to-publish.sh @@ -1,21 +1,30 @@ -#!/bin/sh +#!/usr/bin/env bash -set -euf +set -euo pipefail -# Use Podman if installed, else use Docker -if hash podman 2> /dev/null -then - DOCKER_COMMAND=podman -else - DOCKER_COMMAND=docker +# Allow overriding with env DOCKER_COMMAND, else prefer podman if available, fallback to docker +DOCKER_COMMAND=${DOCKER_COMMAND:-} +if [ -z "$DOCKER_COMMAND" ]; then + if command -v podman >/dev/null 2>&1; then + DOCKER_COMMAND=podman + else + DOCKER_COMMAND=docker + fi fi mkdir -p ./dist -chmod 0777 ./dist +chmod 0755 ./dist + +# Build image (use --pull for freshest base) +$DOCKER_COMMAND build --pull -t aleph-sdk-python -f docker/python-3.9.dockerfile . + +# Run container interactively; map dist and run as current user to avoid root-owned files +USER_UID=$(id -u) +USER_GID=$(id -g) -$DOCKER_COMMAND build -t aleph-sdk-python -f docker/python-3.9.dockerfile . $DOCKER_COMMAND run -ti --rm \ -w /opt/aleph-sdk-python \ -v "$(pwd)/dist":/opt/aleph-sdk-python/dist \ + -u "${USER_UID}:${USER_GID}" \ --entrypoint /bin/bash \ - aleph-sdk-python + aleph-sdk-python \ No newline at end of file