networks: default: volumes: keycloak_data: portainer_data: services: traefik: container_name: neah-traefik image: traefik:latest command: - "--api.insecure=true" - "--providers.docker=true" - "--entrypoints.web.address=:80" ports: - "80:80" - "8080:8080" volumes: - /var/run/docker.sock:/var/run/docker.sock networks: - default portainer: container_name: neah-portainer image: portainer/portainer-ce:latest volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data - "./portainer_password:/portainer_password" labels: - "traefik.enable=true" - "traefik.http.routers.neah-portainer.rule=Host(`${PORTAINER_HOST}.${MAIN_DOMAIN}`)" - "traefik.http.services.neah-portainer.loadbalancer.server.port=9000" command: --admin-password-file '/portainer_password' networks: - default front: container_name: neah-front build: context: ./front dockerfile: Dockerfile environment: - NODE_ENV=production labels: - "traefik.enable=true" - "traefik.http.routers.neah-front.rule=Host(`${MAIN_DOMAIN}`)" - "traefik.http.services.neah-front.loadbalancer.server.port=3000" extra_hosts: - "${KEYCLOAK_HOST}.${MAIN_DOMAIN}:${KEYCLOAK_HOST_IP}" networks: - default keycloak: container_name: neah-keycloak image: quay.io/keycloak/keycloak:latest # TODO: Passer a "start" lors de la production command: ["start-dev"] environment: KC_BOOTSTRAP_ADMIN_USERNAME: ${KEYCLOAK_USER} KC_BOOTSTRAP_ADMIN_PASSWORD: ${KEYCLOAK_PASSWORD} KEYCLOAK_ADMIN: ${KEYCLOAK_USER} KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_PASSWORD} labels: - "traefik.enable=true" - "traefik.http.routers.neah-keycloak.rule=Host(`${KEYCLOAK_HOST}.${MAIN_DOMAIN}`)" - "traefik.http.services.neah-keycloak.loadbalancer.server.port=8080" volumes: - keycloak_data:/opt/keycloak/data ports: - "8090:8080" networks: - default