version: '3' services: web: build: context: . dockerfile: ./apps/web/Dockerfile restart: always networks: - auth_network api: build: context: . dockerfile: ./apps/api/Dockerfile environment: - LDAP_BIND_DN=${LDAP_BIND_DN} - LDAP_BIND_CREDENTIALS=${LDAP_BIND_CREDENTIALS} - LDAP_DOMAIN=${LDAP_DOMAIN} - LDAP_URL=${LDAP_URL} - LDAP_BASE=${LDAP_BASE} - LDAP_ATTRIBUTE=${LDAP_ATTRIBUTE} - API_SECRET=${API_SECRET} - API_TOKEN_TTL=${API_TOKEN_TTL} - API_CACHE_TTL=${API_CACHE_TTL} - REDIS_HOST=redis restart: always networks: - auth_network - app_network redis: image: redis:7-alpine environment: ALLOW_EMPTY_PASSWORD: 'yes' networks: - auth_network server: extends: file: docker-compose.traefik.yml service: server image: nginx:alpine environment: - APPLICATION=${APPLICATION} volumes: - ./config/nginx.conf:/etc/nginx/templates/default.conf.template - ./config/include:/etc/nginx/include restart: always depends_on: - web - api - redis networks: - auth_network - app_network networks: auth_network: app_network: external: true name: ${NETWORK_NAME} web: external: true