diff --git a/backend/Dockerfile b/backend/Dockerfile index b604978..23aacef 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -17,6 +17,9 @@ RUN dotnet publish Extrudex.csproj \ FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime WORKDIR /app +# Install curl for health check (not included in aspnet base image) +RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* + # Non-root user for security RUN adduser --disabled-password --gecos "" appuser USER appuser diff --git a/deploy.sh b/deploy.sh index d17960c..d00c1e6 100755 --- a/deploy.sh +++ b/deploy.sh @@ -18,13 +18,14 @@ echo "📦 Building and starting services..." $COMPOSE_CMD -f docker-compose.dev.yml up -d --build echo "⏳ Waiting for services to become healthy..." -sleep 10 +sleep 15 echo "✅ Deployment complete!" echo "" echo "Services running:" +echo " • PostgreSQL: localhost:5433" echo " • Extrudex API: http://localhost:5080" -echo " • Control Center Web: http://localhost:5081" +echo " • Extrudex Web: http://localhost:5081" echo "" echo "To view logs:" echo " $COMPOSE_CMD -f docker-compose.dev.yml logs -f" diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 2859dff..a0a3d49 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -1,6 +1,25 @@ -version: '3.8' - services: + extrudex-db: + image: postgres:16-alpine + container_name: extrudex-db + environment: + POSTGRES_USER: extrudex + POSTGRES_PASSWORD: changeme + POSTGRES_DB: extrudex + ports: + - "5433:5432" + volumes: + - extrudex-db-data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U extrudex"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + restart: unless-stopped + networks: + - extrudex-network + extrudex-api: build: context: ./backend @@ -11,6 +30,14 @@ services: environment: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://+:8080 + - EXTRUDEX_DB_HOST=extrudex-db + - EXTRUDEX_DB_PORT=5432 + - EXTRUDEX_DB_NAME=extrudex + - EXTRUDEX_DB_USER=extrudex + - EXTRUDEX_DB_PASSWORD=changeme + depends_on: + extrudex-db: + condition: service_healthy restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health"] @@ -21,11 +48,11 @@ services: networks: - extrudex-network - control-center-web: + extrudex-web: build: - context: ../Control-Center/frontend + context: ./frontend dockerfile: Dockerfile - container_name: control-center-web + container_name: extrudex-web ports: - "5081:80" depends_on: @@ -35,6 +62,9 @@ services: networks: - extrudex-network +volumes: + extrudex-db-data: + networks: extrudex-network: driver: bridge \ No newline at end of file