Aggiunti Dockerfile multi-stage, .dockerignore e docker-compose.yml per deployment containerizzato (con healthcheck, volumi persistenti, limiti risorse). Script di build per Linux/Mac e Windows. In Program.cs aggiunto endpoint /health e health checks per orchestrazione. Documentazione estesa: guide Unraid, quickstart Docker, workflow Git/DevOps, best practices su sicurezza, backup, monitoring. Progetto ora pronto per deploy e gestione professionale in ambienti Docker/Unraid.
50 lines
1.3 KiB
Bash
50 lines
1.3 KiB
Bash
#!/bin/bash
|
|
# Script di build Docker per TradingBot
|
|
|
|
set -e
|
|
|
|
echo "?? Building TradingBot Docker Image..."
|
|
|
|
# Colori per output
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Variabili
|
|
IMAGE_NAME="tradingbot"
|
|
TAG="${1:-latest}"
|
|
REGISTRY="${DOCKER_REGISTRY:-}" # Opzionale: tuo registry privato
|
|
|
|
echo -e "${BLUE}?? Building image: ${IMAGE_NAME}:${TAG}${NC}"
|
|
|
|
# Build dell'immagine
|
|
docker build \
|
|
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
|
|
--build-arg VCS_REF=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown") \
|
|
-t ${IMAGE_NAME}:${TAG} \
|
|
-f Dockerfile \
|
|
.
|
|
|
|
echo -e "${GREEN}? Build completato con successo!${NC}"
|
|
|
|
# Tag con latest
|
|
if [ "$TAG" != "latest" ]; then
|
|
echo -e "${BLUE}??? Tagging as latest...${NC}"
|
|
docker tag ${IMAGE_NAME}:${TAG} ${IMAGE_NAME}:latest
|
|
fi
|
|
|
|
# Mostra info immagine
|
|
echo -e "${BLUE}?? Image info:${NC}"
|
|
docker images | grep ${IMAGE_NAME} | head -n 2
|
|
|
|
# Se registry è configurato, push
|
|
if [ ! -z "$REGISTRY" ]; then
|
|
echo -e "${BLUE}?? Pushing to registry: ${REGISTRY}${NC}"
|
|
docker tag ${IMAGE_NAME}:${TAG} ${REGISTRY}/${IMAGE_NAME}:${TAG}
|
|
docker push ${REGISTRY}/${IMAGE_NAME}:${TAG}
|
|
echo -e "${GREEN}? Pushed to registry!${NC}"
|
|
fi
|
|
|
|
echo -e "${GREEN}?? Done! Run with: docker-compose up -d${NC}"
|