version: "3.8" services: go-app: build: context: . dockerfile: Dockerfile ports: # Maps host port 8090 to container port 8090 of the Go app - "${PORT:-8090}:8090" environment: # Override SHIKI_URL to use internal Docker service name SHIKI_URL: http://shiki-service:3000/highlight # Set port explicitly in case the app needs to read it from ENV PORT: "8090" # GIN_MODE: "release" # Example for other ENV variables depends_on: - shiki-service # Ensures shiki-service starts first restart: unless-stopped networks: - templui-net - dokploy-network # Resource limits deploy: resources: limits: cpus: "1.0" # Limit Go app to 1 CPU core memory: 512M # Limit Go app to 512 MB RAM # volumes: # Optional: Local directory for persistent data if needed # - ./data:/app/data shiki-service: build: context: ./shiki dockerfile: Dockerfile # No 'ports' section here -> port 3000 is only internally accessible restart: unless-stopped networks: - templui-net # Resource limits deploy: resources: limits: cpus: "3.0" # Limit Shiki service (all instances) to 3 CPU cores total memory: 1536M # Limit Shiki service (all instances) to 1.5 GB RAM total # Optional: Environment variables for the Shiki server if needed # environment: # NODE_ENV: production networks: templui-net: driver: bridge dokploy-network: external: true