pretendo-docker/scripts/internal/firstrun-mongodb-container.sh
2024-05-03 13:17:36 +00:00

22 lines
698 B
Bash
Executable File

#! /bin/sh
set -eu
git_base=$(git rev-parse --show-toplevel)
. "$git_base/scripts/internal/function-lib.sh"
mongodb_init_script=$(cat "$git_base/scripts/run-in-container/mongodb-init.js")
docker compose up -d mongodb
# This won't work in /docker-entrypoint-initdb.d/ because MongoDB is in a
# special init state where it will refuse to resolve anything but localhost.
# This needs to be run after it initializes.
# https://github.com/docker-library/mongo/issues/339
while ! docker compose exec mongodb mongosh --eval "db.adminCommand('ping')" >/dev/null 2>&1; do
info "Waiting for mongodb to be ready..."
sleep 2
done
docker compose exec mongodb mongosh --eval "$mongodb_init_script"