#!/bin/bash # 5q12's Indexer Docker Build Script # This script builds the Docker image for the indexer set -e # Configuration DOCKER_USERNAME="5q12" IMAGE_NAME="5q12-indexer" VERSION="1.1.16" DOCKERFILE_PATH="." # Full image names VERSIONED_IMAGE="$DOCKER_USERNAME/$IMAGE_NAME:$VERSION" LATEST_IMAGE="$DOCKER_USERNAME/$IMAGE_NAME:latest" echo "Building 5q12's Indexer Docker Image..." echo "Versioned: $VERSIONED_IMAGE" echo "Latest: $LATEST_IMAGE" echo "Dockerfile path: $DOCKERFILE_PATH" echo "" echo "Architecture Notes:" echo "- index.php is always recreated from image (never persisted)" echo "- /config mount point for indexer configuration and cache" echo "- /files mount point for content to be indexed" echo "- Symlinks: /www/indexer/.indexer_files -> /config" echo "- Symlinks: /www/indexer/files -> /files" echo "" # Create docker directory if it doesn't exist mkdir -p docker # Check if required files exist REQUIRED_FILES=( "docker/nginx.conf" "docker/5q12-indexer.conf" "docker/php-fpm.conf" "docker/supervisord.conf" "docker/entrypoint.sh" "index.php" ) echo "Checking required files..." for file in "${REQUIRED_FILES[@]}"; do if [ ! -f "$file" ]; then echo "ERROR: Required file '$file' not found!" echo "Please make sure all configuration files are in place." exit 1 fi echo "✓ $file" done # Make entrypoint script executable and check line endings chmod +x docker/entrypoint.sh if file docker/entrypoint.sh | grep -q "CRLF"; then echo "WARNING: Converting CRLF line endings to LF in entrypoint.sh" sed -i 's/\r$//' docker/entrypoint.sh fi # Build the Docker image with both tags echo "Building Docker image..." docker build -t "$VERSIONED_IMAGE" -t "$LATEST_IMAGE" . if [ $? -eq 0 ]; then echo "✓ Docker image built successfully!" echo "" echo "Image tags created:" echo " - $VERSIONED_IMAGE" echo " - $LATEST_IMAGE" echo "" echo "To test locally:" echo " docker run -d -p 5012:5012 -v ./config:/config -v ./files:/files $VERSIONED_IMAGE" echo "" echo "To push to Docker Hub:" echo " docker login" echo " docker push $VERSIONED_IMAGE" echo " docker push $LATEST_IMAGE" echo "" echo "To use in docker-compose.yml:" echo " image: $VERSIONED_IMAGE" echo " # or" echo " image: $LATEST_IMAGE" else echo "✗ Docker build failed!" exit 1 fi