![](/img/trans.png)
[英]Docker Compose MongoDB docker-entrypoint-initdb.d is not working
[英]MongoDB docker-entrypoint issue
MongoDB docker-entrypoint忽略用於創建用戶和數據庫的自定義腳本。 我試過很多方法。 這是我的配置之一。
解決方案1
docker-compose.yml(版本1)
version: '3.2'
services:
erste-mongodb:
build:
context: .
dockerfile: mongodb.dockerfile
image: erste/lts:mongodb
#environment:
# MONGO_INITDB_ROOT_USERNAME: "root"
# MONGO_INITDB_ROOT_PASSWORD: "toor"
volumes:
- ./data/mongo-data:/data/db
# - ./data/mongo-init:/docker-entrypoint.d/
ports:
- "27017:27017"
networks:
- mynet
網絡:mynet:
dockerfile
FROM mongo:latest
COPY ./data/mongo-init/mongo-init.sh /docker-entrypoint.d/
解決方案2
docker-compose.yml(版本2)
version: '3.2'
services:
erste-mongodb:
build:
context: .
dockerfile: mongodb.dockerfile
image: erste/lts:mongodb
environment:
MONGO_INITDB_ROOT_USERNAME: "root"
MONGO_INITDB_ROOT_PASSWORD: "toor"
volumes:
- ./data/mongo-data:/data/db
- ./data/mongo-init:/docker-entrypoint.d/
ports:
- "27017:27017"
networks:
- mynet
網絡:mynet:
dockerfile
FROM mongo:latest
這是我的init腳本:
mongo-init.sh
#!/bin/bash
echo "Creating users..."
mongo --eval "db.createUser({user: 'revision', pwd: 'rev123',roles: [{role: 'dbOwner', db: 'ebmn_log'}]});"
mongo -u revision -p rev123 --eval "db = db.getSiblingDB('ebmn_log');
db.createCollection('journal')";
echo "Finishing with users"
有誰知道如何運行初始化腳本。
先感謝您。
問題是我使用了./data/mongo-init:/docker-entrypoint.d/
而不是./data/mongo-init:/docker-entrypoint-initdb.d/
。
我改變了它,它就像魅力一樣。
PS而不是sh腳本總是更好地使用純js。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.