version: '3.5' services: felicity_fe: container_name: felicity_fe restart: unless-stopped build: context: ./ target: webapp dockerfile: Dockerfile.dev volumes: - ./webapp:/app/webapp environment: - NODE_ENV=development - VITE_NODE_ENV=development - VITE_APP_TITLE=Felicity Dev - VITE_BASE_URL=http://localhost:8000 ports: - "3000:3000" depends_on: - felicity_pg networks: - felicitynet command: bash -c "pnpm webapp:dev --host --port 3000" felicity_be: container_name: felicity_be restart: unless-stopped build: context: ./ target: webapi dockerfile: Dockerfile.dev environment: - POSTGRES_SERVER=felicity_pg - POSTGRES_DB=felicity_lims - POSTGRES_USER=felicity - POSTGRES_PASSWORD=felicity - POSTGRES_HOST_AUTH_METHOD=trust - LOAD_SETUP_DATA=${LOAD_SETUP_DATA:-False} - SERVE_WEBAPP=${SERVE_WEBAPP:-False} volumes: - ./felicity/:/app/felicity ports: - 8000:8000 depends_on: - felicity_pg networks: - felicitynet extra_hosts: - "host.docker.internal:host-gateway" command: bash -c "cd felicity && alembic upgrade head && uvicorn main:felicity --host=0.0.0.0 --port=8000" felicity_pg: container_name: felicity_pg image: postgres:12 restart: unless-stopped environment: - POSTGRES_DB=felicity_lims - POSTGRES_USER=felicity - POSTGRES_PASSWORD=felicity - POSTGRES_HOST_AUTH_METHOD=trust volumes: - ./services/postgres/init/:/docker-entrypoint-initdb.d/ - pg-data:/var/lib/postgresql/data ports: - 5434:5432 extra_hosts: - "host.docker.internal:host-gateway" networks: - felicitynet pgadmin: container_name: felicity.pgadmin image: dpage/pgadmin4 environment: PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-admin@pgadmin.org} PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin} volumes: - pgadmin:/root/.pgadmin ports: - "${PGADMIN_PORT:-5050}:80" networks: - felicitynet restart: unless-stopped depends_on: - felicity_pg minio: image: bitnami/minio:2024.7.31 ports: - '9000:9000' - '9001:9001' networks: - felicitynet volumes: - 'minio_data:/data' environment: - MINIO_ROOT_USER=felicity - MINIO_ROOT_PASSWORD=felicity - MINIO_DEFAULT_BUCKET=felicity mongo: image: mongo restart: always environment: MONGO_INITDB_ROOT_USERNAME: felicity MONGO_INITDB_ROOT_PASSWORD: felicity mongo-express: image: mongo-express restart: always ports: - 8081:8081 environment: ME_CONFIG_MONGODB_ADMINUSERNAME: felicity ME_CONFIG_MONGODB_ADMINPASSWORD: felicity ME_CONFIG_MONGODB_URL: mongodb://felicity:felicity@mongo:27017/ ME_CONFIG_BASICAUTH: false volumes: pg-data: pgadmin: minio_data: networks: felicitynet: driver: bridge