jevstrudel.git / docker-build.sh
1#!/bin/bash
2
3# Docker build script for Strudel
4# Usage: ./docker-build.sh [dev|prod|both]
5
6set -e
7
8RED='\033[0;31m'
9GREEN='\033[0;32m'
10YELLOW='\033[1;33m'
11NC='\033[0m' # No Color
12
13print_usage() {
14    echo "Usage: $0 [dev|prod|both]"
15    echo ""
16    echo "  dev   - Build development container (Dockerfile.dev)"
17    echo "  prod  - Build production container (Dockerfile)"
18    echo "  both  - Build both containers (default)"
19    echo ""
20    echo "Examples:"
21    echo "  $0 dev"
22    echo "  $0 prod"
23    echo "  $0"
24}
25
26build_dev() {
27    echo -e "${YELLOW}Building development container...${NC}"
28    docker build -f Dockerfile.dev -t strudel-dev .
29    echo -e "${GREEN}✓ Development container built: strudel-dev${NC}"
30    echo -e "${YELLOW}Run with: docker run -p 4321:4321 strudel-dev${NC}"
31}
32
33build_prod() {
34    echo -e "${YELLOW}Building production container...${NC}"
35    docker build -t strudel-prod .
36    echo -e "${GREEN}✓ Production container built: strudel-prod${NC}"
37    echo -e "${YELLOW}Run with: docker run -p 8080:8080 strudel-prod${NC}"
38}
39
40# Default to both if no argument provided
41TARGET=${1:-both}
42
43case $TARGET in
44    dev)
45        build_dev
46        ;;
47    prod)
48        build_prod
49        ;;
50    both)
51        build_dev
52        echo ""
53        build_prod
54        ;;
55    help|--help|-h)
56        print_usage
57        exit 0
58        ;;
59    *)
60        echo -e "${RED}Error: Unknown option '$TARGET'${NC}"
61        echo ""
62        print_usage
63        exit 1
64        ;;
65esac
66
67echo ""
68echo -e "${GREEN}🎵 Docker build complete!${NC}"