Bootstrap: docker From: ubuntu:24.04 %labels Author ATGC Tool ASTRAL Runtime ASTER %post set -eu export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y --no-install-recommends \ ca-certificates \ wget \ unzip \ make \ g++ ASTER_URL="${ASTER_URL:-https://github.com/chaoszhang/ASTER/archive/refs/heads/Linux.zip}" wget -q -O /tmp/aster_linux.zip "${ASTER_URL}" unzip -q /tmp/aster_linux.zip -d /opt ASTER_SRC="$(find /opt -maxdepth 1 -type d -name 'ASTER-*' | head -n 1)" if [ -z "${ASTER_SRC}" ]; then echo "Unable to locate extracted ASTER source directory" >&2 exit 1 fi cd "${ASTER_SRC}" if [ ! -x "bin/astral" ] || [ ! -x "bin/astral-pro3" ]; then make fi test -x "bin/astral" test -x "bin/astral-pro3" mkdir -p /opt/aster/bin cp -f "bin/astral" "/opt/aster/bin/astral" cp -f "bin/astral-pro3" "/opt/aster/bin/astral-pro3" chmod +x /opt/aster/bin/astral /opt/aster/bin/astral-pro3 ln -sf /opt/aster/bin/astral /usr/local/bin/astral ln -sf /opt/aster/bin/astral-pro3 /usr/local/bin/astral-pro3 cat > /usr/local/bin/aster_runner <<'EOS' #!/bin/sh set -eu tool="astral" if [ "$#" -ge 2 ] && [ "$1" = "--tool" ]; then tool="$2" shift 2 fi case "$tool" in astral|astral-pro3) ;; *) echo "Unknown ASTER binary '$tool' (expected 'astral' or 'astral-pro3')." >&2 exit 2 ;; esac exec "/opt/aster/bin/${tool}" "$@" EOS chmod +x /usr/local/bin/aster_runner rm -f /tmp/aster_linux.zip rm -rf /var/lib/apt/lists/* %environment export PATH=/usr/local/bin:/opt/aster/bin:$PATH %runscript exec /usr/local/bin/aster_runner "$@" %test test -x /opt/aster/bin/astral test -x /opt/aster/bin/astral-pro3