fix: drop curl healthcheck and cors.ini mount; configure CORS via API
The couchdb:3 image purges curl after the build, so the curl-based healthcheck could never succeed. The cors.ini bind-mount also looks like the cause of the ~600ms container exit observed in the first two Coolify deploys. Both pieces are removed; CORS is now applied by the init sidecar via PUTs against /_node/_local/_config/..., which is idempotent on redeploy.
This commit is contained in:
@@ -10,13 +10,6 @@ services:
|
||||
- "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}`)"
|
||||
@@ -28,8 +21,7 @@ services:
|
||||
image: curlimages/curl:latest
|
||||
restart: "no"
|
||||
depends_on:
|
||||
couchdb:
|
||||
condition: service_healthy
|
||||
- couchdb
|
||||
environment:
|
||||
COUCHDB_USER: ${COUCHDB_USER:-admin}
|
||||
COUCHDB_PASSWORD: ${COUCHDB_PASSWORD}
|
||||
@@ -38,13 +30,36 @@ services:
|
||||
- |
|
||||
set -eu
|
||||
base="http://$${COUCHDB_USER}:$${COUCHDB_PASSWORD}@couchdb:5984"
|
||||
|
||||
echo "waiting for couchdb..."
|
||||
i=0
|
||||
until curl -fsS "http://couchdb:5984/_up" >/dev/null 2>&1; do
|
||||
i=$$((i + 1))
|
||||
if [ $$i -gt 60 ]; then
|
||||
echo "couchdb did not become ready in 120s"; exit 1
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
echo "couchdb ready"
|
||||
|
||||
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 ;;
|
||||
201|202|412) echo "db $$db: ok ($$code)" ;;
|
||||
*) echo "db $$db: failed ($$code)"; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
put_config() {
|
||||
curl -fsS -X PUT -H "Content-Type: application/json" \
|
||||
"$$base/_node/_local/_config/$$1/$$2" -d "\"$$3\"" >/dev/null
|
||||
echo "cfg $$1/$$2 = $$3"
|
||||
}
|
||||
put_config chttpd enable_cors true
|
||||
put_config cors origins '*'
|
||||
put_config cors credentials false
|
||||
put_config cors methods 'GET, PUT, POST, HEAD, DELETE'
|
||||
put_config cors headers 'accept, authorization, content-type, origin, referer, x-csrf-token'
|
||||
|
||||
volumes:
|
||||
couchdb_data:
|
||||
|
||||
Reference in New Issue
Block a user