version: '2.4' services: cache: image: redis:alpine volumes: - redis_data:/data restart: always db: image: postgres environment: POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pokemon} POSTGRES_USER: ${POSTGRES_USER:-ash} POSTGRES_DB: ${POSTGRES_DB:-pokeapi} volumes: - pg_data:/var/lib/postgresql/data restart: always app: build: context: . dockerfile: ./Resources/docker/app/Dockerfile user: ${RUN_AS:-pokeapi} environment: POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-pokemon} POSTGRES_USER: ${POSTGRES_USER:-ash} POSTGRES_DB: ${POSTGRES_DB:-pokeapi} volumes: - .:/code links: - db - cache depends_on: - db - cache restart: always web: image: nginx:alpine ports: - "80:80" - "443:443" restart: always # command: [nginx-debug, '-g', 'daemon off;'] volumes: - ./Resources/nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./Resources/nginx/ssl:/ssl:ro volumes_from: - app:ro links: - app graphql-engine: image: hasura/graphql-engine:v2.0.0-alpha.5 ports: - "8080:8080" depends_on: - "db" restart: always environment: HASURA_GRAPHQL_DATABASE_URL: postgres://${POSTGRES_USER:-ash}:${POSTGRES_PASSWORD:-pokemon}@db:5432/${POSTGRES_DB:-pokeapi} HASURA_GRAPHQL_ENABLE_CONSOLE: "true" HASURA_GRAPHQL_DEV_MODE: "false" HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET:-pokemon} HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anon HASURA_GRAPHQL_ENABLE_TELEMETRY: "false" # HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets volumes: pg_data: redis_data: