Files
imprink/docker-compose.yml
2025-06-09 20:28:21 +03:00

94 lines
2.6 KiB
YAML

services:
webapi:
build:
context: .
dockerfile: ./src/Imprink.WebApi/Dockerfile
expose:
- "8080"
environment:
- ASPNETCORE_ENVIRONMENT=${ASPNETCORE_ENVIRONMENT}
- ConnectionStrings__DefaultConnection=Server=${SQL_SERVER};Database=${SQL_DATABASE};User Id=${SQL_USER_ID};Password=${SQL_PASSWORD};Encrypt=false;TrustServerCertificate=true;MultipleActiveResultSets=true;
- ASPNETCORE_URLS=${ASPNETCORE_URLS}
- Auth0__Authority=${AUTH0_AUTHORITY}
- Auth0__Audience=${AUTH0_AUDIENCE}
- Logging__LogLevel__Default=${ASPNETCORE_LOGGING_LEVEL_DEFAULT}
- Logging__LogLevel__Microsoft.AspNetCore=${ASPNETCORE_LOGGING_LEVEL}
- Logging__LogLevel__Microsoft.EntityFrameworkCore=${ASPNETCORE_LOGGING_LEVEL_EFCORE}
- DatabaseOptions__ApplyMigrationsAtStartup=${ASPNETCORE_APPLY_MIGRATIONS_AT_STARTUP}
depends_on:
- mssql
networks:
- app-network
seq:
image: datalust/seq
expose:
- "80"
- "5341"
ports:
- "5341:5341"
environment:
- ACCEPT_EULA=Y
- SEQ_CACHE_SYSTEMRAMTARGET=0.9
- BASE_URI=https://impr.ink/seq
networks:
- app-network
webui:
image: node:18-alpine
working_dir: /app
volumes:
- ./webui:/app
- /app/node_modules
ports:
- "3000"
environment:
- NODE_ENV=development
- AUTH0_SECRET=${AUTH0_SECRET}
- APP_BASE_URL=${APP_BASE_URL}
- AUTH0_DOMAIN=${AUTH0_ISSUER_BASE_URL}
- AUTH0_CLIENT_ID=${AUTH0_CLIENT_ID}
- AUTH0_CLIENT_SECRET=${AUTH0_CLIENT_SECRET}
- AUTH0_AUDIENCE=${AUTH0_AUDIENCE}
- AUTH0_SCOPE=${AUTH0_SCOPE}
- COOKIE_DOMAIN=${COOKIE_DOMAIN}
- NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}
- NEXT_PUBLIC_AUTH0_CLIENT_ID=${NEXT_PUBLIC_AUTH0_CLIENT_ID}
- NEXT_PUBLIC_AUTH0_DOMAIN=${NEXT_PUBLIC_AUTH0_DOMAIN}
command: sh -c "npm install && npm run dev"
networks:
- app-network
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: sqlserver
ports:
- "1433:1433"
environment:
- SA_PASSWORD=${SQL_PASSWORD}
- ACCEPT_EULA=Y
- MSSQL_AGENT_ENABLED=false
- MSSQL_LOG_LEVEL=WARN
restart: unless-stopped
networks:
- app-network
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./ssl/impr.ink-chain.pem:/etc/ssl/certs/impr.ink.crt:ro
- ./ssl/impr.ink-key.pem:/etc/ssl/private/impr.ink.key:ro
depends_on:
- webapi
- webui
- seq
networks:
- app-network
networks:
app-network:
driver: bridge