felicity-lims/docker-compose.dev.yml

161 lines
4 KiB
YAML

version: '3.5'
services:
felicity-webapp:
container_name: felicity-webapp
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-postgres
networks:
- felicitynet
command: bash -c "pnpm webapp:dev --host --port 3000"
felicity-api:
container_name: felicity-api
restart: unless-stopped
build:
context: ./
target: webapi
dockerfile: Dockerfile.dev
environment:
- POSTGRES_SERVER=felicity-postgres
- 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}
- REDIS_SERVER=felicity-dragonfly:6379
- MONGODB_SERVER=felicity-mongo:27017
- MONGODB_USER=felicity
- MONGODB_PASS=felicity
- MINIO_SERVER=felicity-minio:9000
- MINIO_ACCESS=felicity
- MINIO_SECRET=felicity
volumes:
- ./felicity:/app/felicity
ports:
- 8000:8000
depends_on:
- felicity-postgres
networks:
- felicitynet
extra_hosts:
- "host.docker.internal:host-gateway"
command: bash -c "cd felicity && uvicorn main:felicity --reload --host=0.0.0.0 --port=8000"
felicity-minio:
container_name: felicity-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
felicity-dragonfly:
container_name: felicity-dragonfly
image: 'docker.dragonflydb.io/dragonflydb/dragonfly'
ulimits:
memlock: -1
ports:
- "6379:6379"
# For better performance, consider `host` mode instead `port` to avoid docker NAT.
# `host` mode is NOT currently supported in Swarm Mode.
# https://docs.docker.com/compose/compose-file/compose-file-v3/#network_mode
# network_mode: "host"
volumes:
- dragonflydata:/data
networks:
- felicitynet
felicity-postgres:
container_name: felicity-postgres
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
felicity-mongo:
container_name: felicity-mongo
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: felicity
MONGO_INITDB_ROOT_PASSWORD: felicity
ports:
- '27027:27017'
networks:
- felicitynet
felicity-dbgate:
container_name: felicity-dbgate
image: dbgate/dbgate
restart: always
ports:
- 8051:3000
volumes:
- dbgate-data:/root/.dbgate
environment:
LOGIN: felicity
PASSWORD: felicity
CONNECTIONS: pg,mg
LABEL_pg: Felicity Postgres
SERVER_pg: felicity-postgres
USER_pg: felicity
PASSWORD_pg: felicity
DATABASE_pg: felicity_lims
PORT_pg: 5432
ENGINE_pg: postgres@dbgate-plugin-postgres
READONLY_pg: 1
LABEL_mg: Felicity Mongo
URL_mg: mongodb://felicity:felicity@felicity-mongo:27017/
DATABASE_mg: felicity
ENGINE_mg: mongo@dbgate-plugin-mongo
READONLY_mg: 1
networks:
- felicitynet
volumes:
pg-data:
pgadmin:
minio_data:
dragonflydata:
dbgate-data:
driver: local
networks:
felicitynet:
driver: bridge