공식 mongo
이미지가 있다 기능을 포함하는 PR 병합 시작시 사용자와 데이터베이스를 만들 수 있습니다.
데이터베이스 초기화는 /data/db
디렉토리에 아무것도 채워지지 않을 때 실행됩니다 .
관리자 사용자 설정
"루트"사용자 설정을 제어하는 환경 변수는 다음과 같습니다.
MONGO_INITDB_ROOT_USERNAME
MONGO_INITDB_ROOT_PASSWORD
예
docker run -d \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=password \
mongod
--auth
docker entrypoint.sh 스크립트는 환경 변수가 존재할 때 이것을 추가하므로 명령 줄에서 사용할 필요가 없거나 사용할 수 없습니다 .
데이터베이스 초기화
이 이미지는 데이터베이스 초기화시 한 번 실행되는 /docker-entrypoint-initdb.d/
사용자 지정 .js
또는 .sh
설정 스크립트 를 배포 하는 경로 도 제공합니다 . .js
스크립트는 test
기본적으로 또는 MONGO_INITDB_DATABASE
환경에 정의 된 경우 에 대해 실행 됩니다.
COPY mysetup.sh /docker-entrypoint-initdb.d/
또는
COPY mysetup.js /docker-entrypoint-initdb.d/
데이터, 로깅 및 오류로 종료하는 방법 (결과 확인을 위해)을 사용 하여 콜렉션을 설정하는 방법을 보여주는 간단한 초기화 mongo 셸 자바 스크립트 파일입니다 container
.
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)
}