services: nginx: image: nginx:latest container_name: kg-nginx volumes: - ./nginx:/etc/nginx/conf.d - ./frontend/dist:/usr/share/nginx/html ports: - ${PORT}:80 depends_on: - backend - keycloak frontend: container_name: kg-frontend env_file: - .env build: context: ./frontend volumes: - ./frontend/dist:/app/dist develop: watch: - action: sync path: ./frontend target: /app ignore: - node_modules/ - dist/ - action: rebuild path: ./frontend/package.json backend: container_name: kg-backend build: context: ./backend depends_on: - keycloak keycloak: container_name: kg-keycloak image: quay.io/keycloak/keycloak:latest environment: - KC_DB=postgres - KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak - KC_DB_USERNAME=${POSTGRES_USER} - KC_DB_PASSWORD=${POSTGRES_PASSWORD} - KEYCLOAK_ADMIN=${KEYCLOAK_USER} - KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_PASSWORD} - KEYCLOAK_FRONTEND_URL=${KEYCLOAK_FRONTEND_URL} volumes: - ./keycloak:/opt/keycloak/data/import command: > start-dev --import-realm depends_on: - postgres postgres: container_name: kg-postgres image: postgres:latest environment: POSTGRES_DB: keycloak POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} volumes: - ./postgres/data:/var/lib/postgresql/data