#!/bin/bash # ============================================================================ # Build and push the ASCAD worker Docker image # Run this on a machine with Docker access (e.g., Vast.ai instance) # ============================================================================ # Usage: DOCKER_PAT=xxx bash build_docker.sh # ============================================================================ set -euo pipefail IMAGE_NAME="lemousehunter/ascad-worker:latest" echo "=== Building Docker image ===" cat > /tmp/Dockerfile <<'DOCKERFILE' FROM tensorflow/tensorflow:2.16.2-gpu ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ wget \ unzip \ screen \ && rm -rf /var/lib/apt/lists/* RUN pip3 install --no-cache-dir \ h5py \ numpy \ scipy \ scikit-learn \ requests \ pyyaml \ wandb \ huggingface_hub RUN mkdir -p /tmp/ascad_data /root/ascad-training-pipeline WORKDIR /root DOCKERFILE docker build -t "$IMAGE_NAME" -f /tmp/Dockerfile /tmp echo "=== Logging in to Docker Hub ===" echo "${DOCKER_PAT}" | docker login -u lemousehunter --password-stdin echo "=== Pushing image ===" docker push "$IMAGE_NAME" echo "=== Done! Image pushed: $IMAGE_NAME ==="