Files
coolcouch/docker-compose.yml
Julien Calixte 38089ef269 init
2026-06-01 20:37:14 +02:00

51 lines
1.5 KiB
YAML

services:
couchdb:
image: couchdb:3
restart: unless-stopped
environment:
SERVICE_FQDN_COUCHDB_5984:
COUCHDB_USER: ${COUCHDB_USER:-admin}
COUCHDB_PASSWORD: ${COUCHDB_PASSWORD}
expose:
- "5984"
volumes:
- couchdb_data:/opt/couchdb/data
- ./couchdb/local.d/cors.ini:/opt/couchdb/etc/local.d/cors.ini:ro
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:5984/_up"]
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
labels:
- "traefik.enable=true"
- "traefik.http.routers.couchdb.rule=Host(`${SERVICE_FQDN_COUCHDB_5984}`)"
- "traefik.http.routers.couchdb.entrypoints=https"
- "traefik.http.routers.couchdb.tls=true"
- "traefik.http.services.couchdb.loadbalancer.server.port=5984"
couchdb-init:
image: curlimages/curl:latest
restart: "no"
depends_on:
couchdb:
condition: service_healthy
environment:
COUCHDB_USER: ${COUCHDB_USER:-admin}
COUCHDB_PASSWORD: ${COUCHDB_PASSWORD}
entrypoint: ["sh", "-c"]
command:
- |
set -eu
base="http://$${COUCHDB_USER}:$${COUCHDB_PASSWORD}@couchdb:5984"
for db in _users _replicator _global_changes; do
code=$$(curl -s -o /dev/null -w "%{http_code}" -X PUT "$$base/$$db")
case "$$code" in
201|202|412) echo "$$db: ok ($$code)" ;;
*) echo "$$db: failed ($$code)"; exit 1 ;;
esac
done
volumes:
couchdb_data: