#!/usr/bin/env bash set -euo pipefail HOST=${COUCHBASE_HOST:-couchbase} ADMIN_USER=${COUCHBASE_ADMIN_USER:-Administrator} ADMIN_PASS=${COUCHBASE_ADMIN_PASS:-password} BUCKET=${COUCHBASE_BUCKET:-hbs} BUCKET_PASS=${COUCHBASE_BUCKET_PASS:-aci} echo "Waiting for Couchbase at ${HOST}:8091..." until curl -s "http://${HOST}:8091/pools" >/dev/null; do sleep 2 done status=$(curl -s -o /dev/null -w "%{http_code}" "http://${HOST}:8091/pools/default") if [ "$status" != "200" ]; then couchbase-cli cluster-init -c "${HOST}:8091" \ --cluster-username "${ADMIN_USER}" \ --cluster-password "${ADMIN_PASS}" \ --cluster-ramsize 512 \ --services data fi if ! couchbase-cli bucket-list -c "${HOST}:8091" -u "${ADMIN_USER}" -p "${ADMIN_PASS}" | grep -q "${BUCKET}"; then couchbase-cli bucket-create -c "${HOST}:8091" \ -u "${ADMIN_USER}" -p "${ADMIN_PASS}" \ --bucket="${BUCKET}" \ --bucket-password="${BUCKET_PASS}" \ --bucket-type=couchbase \ --bucket-ramsize=200 \ --bucket-replica=1 \ --wait fi echo "Couchbase initialized."