40 lines
		
	
	
		
			804 B
		
	
	
	
		
			Docker
		
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			804 B
		
	
	
	
		
			Docker
		
	
	
| # Fase 1: Build
 | |
| FROM golang:1.21-alpine AS builder
 | |
| 
 | |
| WORKDIR /app
 | |
| 
 | |
| # Copia i file necessari per la compilazione
 | |
| COPY go.mod go.sum ./
 | |
| RUN go mod download
 | |
| 
 | |
| COPY . .
 | |
| 
 | |
| # Compila l'applicazione
 | |
| RUN CGO_ENABLED=0 GOOS=linux go build -o u-pod
 | |
| 
 | |
| # Fase 2: Container leggero
 | |
| FROM alpine:latest
 | |
| 
 | |
| WORKDIR /app
 | |
| 
 | |
| # Copia solo l'eseguibile dalla fase di build
 | |
| COPY --from=builder /app/u-pod .
 | |
| COPY --from=builder /app/cover.jpg .
 | |
| RUN mkdir -p audio covers
 | |
| 
 | |
| # Variabili d'ambiente obbligatorie (da sovrascrivere al runtime)
 | |
| 
 | |
| ENV PODCAST_PORT=":8080" \
 | |
|     PODCAST_BASE_URL="http://localhost:8080" \
 | |
|     PODCAST_AUDIO_DIR="/app/audio" \
 | |
|     PODCAST_COVERS_DIR="/app/covers" \
 | |
|     PODCAST_TITLE="Yo mom Podcast"
 | |
| 
 | |
| 
 | |
| 
 | |
| # Esponi la porta e avvia l'applicazione
 | |
| EXPOSE 8080
 | |
| VOLUME ["/app/audio", "/app/covers"]
 | |
| CMD ["./u-pod"]
 | |
| 
 |