version: '3' services: postgres: image: postgres:14.2-alpine container_name: postgres environment: - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres ports: - 5432:5432 volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: [ "CMD-SHELL", "pg_isready -U postgres" ] start_period: 15s interval: 30s timeout: 30s retries: 3 restart: always traefik: image: traefik:rocamadour container_name: traefik command: - --providers.docker=true - --providers.docker.exposedbydefault=false - --entrypoints.web.address=:80 ports: - 80:80 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro server: image: amruthpillai/reactive-resume:server-latest # build: # context: . # dockerfile: ./server/Dockerfile container_name: server environment: - TZ=UTC - PUBLIC_URL=http://localhost:3000 - PUBLIC_SERVER_URL=http://localhost:3000/api - PUBLIC_GOOGLE_CLIENT_ID= - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - SECRET_KEY= - POSTGRES_HOST=postgres - POSTGRES_PORT=5432 - POSTGRES_SSL_CERT= - JWT_SECRET= - JWT_EXPIRY_TIME=604800 - GOOGLE_CLIENT_SECRET= - GOOGLE_API_KEY= - SENDGRID_API_KEY= - SENDGRID_FORGOT_PASSWORD_TEMPLATE_ID= - SENDGRID_FROM_NAME= - SENDGRID_FROM_EMAIL= - STORAGE_BUCKET= - STORAGE_REGION= - STORAGE_ENDPOINT= - STORAGE_URL_PREFIX= - STORAGE_ACCESS_KEY= - STORAGE_SECRET_KEY= depends_on: - traefik - postgres labels: - traefik.enable=true - traefik.http.routers.server.entrypoints=web - traefik.http.routers.server.rule=Host(`localhost`) && PathPrefix(`/api/`) - traefik.http.routers.server.middlewares=server-stripprefix - traefik.http.middlewares.server-stripprefix.stripprefix.prefixes=/api - traefik.http.middlewares.server-stripprefix.stripprefix.forceslash=true restart: always client: image: amruthpillai/reactive-resume:client-latest # build: # context: . # dockerfile: ./client/Dockerfile container_name: client environment: - TZ=UTC - PUBLIC_URL=http://localhost:3000 - PUBLIC_SERVER_URL=http://localhost:3000/api - PUBLIC_GOOGLE_CLIENT_ID= - PUBLIC_FLAG_DISABLE_SIGNUPS=false depends_on: - traefik - server labels: - traefik.enable=true - traefik.http.routers.client.rule=Host(`localhost`) - traefik.http.routers.client.entrypoints=web restart: always volumes: pgdata: