Files
stripstream/docker-compose.dev.yml

63 lines
1.9 KiB
YAML

version: "3.8"
services:
app:
build:
context: .
dockerfile: Dockerfile
args:
- MONGODB_URI=${MONGODB_URI}
container_name: stripstream-app
ports:
- "3020:3000"
volumes:
- ./src:/app/src
- ./prisma:/app/prisma
- ./public:/app/public
- ./package.json:/app/package.json
- ./pnpm-lock.yaml:/app/pnpm-lock.yaml
- ./tsconfig.json:/app/tsconfig.json
- ./tailwind.config.ts:/app/tailwind.config.ts
- ./postcss.config.js:/app/postcss.config.js
- ./next.config.js:/app/next.config.js
- /app/node_modules
- /app/.next
- ~/.pnpm-store:/app/.pnpm-store
- cache_data:/app/.cache
environment:
- NODE_ENV=development
- MONGO_USER=admin
- MONGO_PASSWORD=password123
- MONGODB_URI=${MONGODB_URI}
- PNPM_HOME=/app/.pnpm-store
- WATCHPACK_POLLING=true
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
- NEXTAUTH_URL=${NEXTAUTH_URL}
command: sh -c "pnpm config set store-dir /app/.pnpm-store && pnpm install --frozen-lockfile && pnpm prisma generate && pnpm dev"
mongodb:
image: mongo:latest
container_name: stripstream_mongodb
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD}
MONGO_INITDB_DATABASE: stripstream
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- ./mongo-keyfile:/data/keyfile:ro
command: ["mongod", "--replSet", "rs0", "--bind_ip_all", "--keyFile", "/data/keyfile"]
healthcheck:
test: echo "try { rs.status() } catch (err) { rs.initiate({_id:'rs0',members:[{_id:0,host:'mongodb:27017'}]}) }" | mongosh -u ${MONGO_USER} -p ${MONGO_PASSWORD} --authenticationDatabase admin --quiet
interval: 10s
timeout: 10s
retries: 5
start_period: 40s
volumes:
mongodb_data:
cache_data: