Oficjalny mongo
obraz jest połączone PR obejmuje funkcjonalność do tworzenia użytkowników i baz danych przy starcie.
Inicjalizacja bazy danych rozpocznie się, gdy w /data/db
katalogu nie ma żadnych danych .
Konfiguracja użytkownika administratora
Zmienne środowiskowe kontrolujące ustawienia użytkownika „root” to
MONGO_INITDB_ROOT_USERNAME
MONGO_INITDB_ROOT_PASSWORD
Przykład
docker run -d \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=password \
mongod
Nie musisz / nie możesz używać --auth
w wierszu poleceń, ponieważ skrypt docker entrypoint.sh dodaje to, gdy istnieją zmienne środowiskowe.
Inicjalizacja bazy danych
Obraz zawiera również /docker-entrypoint-initdb.d/
ścieżkę do wdrażania niestandardowych .js
lub .sh
konfiguracyjnych skryptów, które zostaną uruchomione po zainicjowaniu bazy danych. .js
skrypty będą uruchamiane test
domyślnie lub MONGO_INITDB_DATABASE
jeśli zostały zdefiniowane w środowisku.
COPY mysetup.sh /docker-entrypoint-initdb.d/
lub
COPY mysetup.js /docker-entrypoint-initdb.d/
Prosty plik inicjalizacyjny powłoki mongo javascript , który demonstruje konfigurację container
kolekcji z danymi, rejestrowanie i jak wyjść z błędem (w celu sprawdzenia wyników).
let error = true
let res = [
db.container.drop(),
db.container.createIndex({ myfield: 1 }, { unique: true }),
db.container.createIndex({ thatfield: 1 }),
db.container.createIndex({ thatfield: 1 }),
db.container.insert({ myfield: 'hello', thatfield: 'testing' }),
db.container.insert({ myfield: 'hello2', thatfield: 'testing' }),
db.container.insert({ myfield: 'hello3', thatfield: 'testing' }),
db.container.insert({ myfield: 'hello3', thatfield: 'testing' }),
db.other.
]
printjson(res)
if (error) {
print('Error, exiting')
quit(1)
}