Repository navigation
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
47 lines (47 loc) · 2.08 KB
/
Copy pathdocker-compose.dev.yml
File metadata and controls
47 lines (47 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Local services for dev and e2e. Ports are offset so they never clash with other projects, and bound to this machine only.
name: pluck-dev
services:
mongo:
image: mongo:8.2
command: ["--replSet", "rs0", "--bind_ip_all", "--port", "27017"]
ports: ["127.0.0.1:27027:27017"]
volumes: [mongo:/data/db]
healthcheck:
# Initiates the single-node replica set on first boot, then reports healthy once it is primary.
test: ["CMD", "mongosh", "--quiet", "--eval", "try { rs.status().ok } catch (e) { rs.initiate({ _id: 'rs0', members: [{ _id: 0, host: '127.0.0.1:27017' }] }).ok }"]
interval: 2s
timeout: 10s
retries: 30
mailpit:
image: axllent/mailpit:v1.27
ports: ["127.0.0.1:1035:1025", "127.0.0.1:8035:8025"]
healthcheck:
test: ["CMD", "/mailpit", "readyz"]
interval: 2s
retries: 30
minio:
image: cgr.dev/chainguard/minio:latest
command: ["server", "/data", "--console-address", ":9001"]
ports: ["127.0.0.1:9010:9000", "127.0.0.1:9011:9001"]
environment: { MINIO_ROOT_USER: pluck, MINIO_ROOT_PASSWORD: pluck-dev-secret }
volumes: [minio:/data]
# One-shot, run by `pnpm stack` after the services are up (not part of `up --wait`).
minio-init:
profiles: [init]
image: amazon/aws-cli:2.27.7
depends_on: [minio]
environment: { AWS_ACCESS_KEY_ID: pluck, AWS_SECRET_ACCESS_KEY: pluck-dev-secret, AWS_DEFAULT_REGION: eu-west-1 }
entrypoint: ["sh", "-c", "until aws --endpoint-url http://minio:9000 s3 ls >/dev/null 2>&1; do sleep 1; done; aws --endpoint-url http://minio:9000 s3api head-bucket --bucket pluck-content 2>/dev/null || aws --endpoint-url http://minio:9000 s3 mb s3://pluck-content"]
# Serves packages/extract/fixtures so extraction tests and demos never touch the internet.
fixtures:
image: node:22-alpine
command: ["node", "/fixtures/server.mjs"]
ports: ["127.0.0.1:4180:4180"]
volumes: ["./packages/extract/fixtures:/fixtures:ro"]
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:4180/health"]
interval: 2s
retries: 30
volumes:
mongo:
minio: