#!/bin/bash # Build script for PISCAL Docker image with automatic versioning set -e # Load password from .piscal-build.env if it exists (gitignored) if [ -f .piscal-build.env ]; then set -a source .piscal-build.env set +a fi # Generate version tag: YYYYMMDD-gitsha DATE_TAG=$(date +%Y%m%d) GIT_SHA=$(git rev-parse --short HEAD) VERSION="${DATE_TAG}-${GIT_SHA}" echo "Building PISCAL Docker image..." echo "Version: ${VERSION}" echo "" # Build args: use PISCAL_SSH_PASSWORD if set (from env or .piscal-build.env) BUILD_ARGS=(-t "piscal:${VERSION}" -t piscal:latest -t piscal:dev) if [ -n "${PISCAL_SSH_PASSWORD:-}" ]; then BUILD_ARGS+=(--build-arg "SSH_PASSWORD=${PISCAL_SSH_PASSWORD}") fi [ -n "${PISCAL_BUILD_NO_CACHE:-}" ] && BUILD_ARGS+=(--no-cache) docker build "${BUILD_ARGS[@]}" . echo "" echo "Successfully built:" echo " - piscal:${VERSION}" echo " - piscal:latest" echo " - piscal:dev" echo "" if [ -n "${PISCAL_SSH_PASSWORD:-}" ]; then echo "Credentials (from PISCAL_SSH_PASSWORD / .piscal-build.env):" echo " Username: piscaladmin" echo " Password: (custom)" else echo "Default credentials (v1 layout):" echo " Username: piscaladmin" echo " Password: piscaladmin" fi echo " LeafWeb: /home/piscaladmin/LeafWeb (scripts + project dirs)" echo " Storage: /home/piscaladmin/LeafWeb_storage" echo " Executable: /home/piscaladmin/piscal_executable/piscal" echo "" echo "To run: docker run -d -p 2222:22 --name piscal-server piscal:latest" echo "To SSH: ssh -p 2222 piscaladmin@localhost"