Buenas, estoy intentando instalar con docker mongodb, pero hay alguna forma de que en la instalacion se cree una database y una tabla? Para luego pasar ese fichero e instalar con compose, y no tener que configurar nada
he creado un .yaml
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
MONGO_INITDB_DATABASE: test
volumes:
- /home/victor/Desarrollo/docker/mongo:/data/db
- ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
ports:
- "27017:27017"
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: root
ME_CONFIG_MONGODB_ADMINPASSWORD: example
luego creo un init-mongo.js
db.createCollection("coleccion");
y nada , no hay manera
también intento entrar por shell y crear la colección o hacer algún comando y me sale siempre.
"command create requires authentication"
alguien que sepa de mongodb me puede ayudar?
#4 Lo que has hecho con el script es solo montarlo a nivel de volumen para que cuando arranque, dentro tengas esa visibilidad, pero tienes que decirle al compose que ejecute el script después de que todo esté UP, te paso la info:
https://github.com/docker-library/wordpress/issues/205#issuecomment-278319730
Espero que te sirva!
le he añadido
command:
- init-mongo.js
ahora ni conecta cuando monto todo, xk será?
lo que hago es hacer stop de los contenedores uno a uno, luego hago
sudo docker-compose up -d
en la carpeta donde tenga el yaml y el fichero init-mongo.js, es así no? a ver si no lo está creando de nuevo, si no reiniciando o algo, y no funciona por eso
el js tiene esto
db.auth("root","example")
use test
db.createUser(
{
user: "myTester",
pwd: "example",
roles: [ { role: "readWrite", db: "test" } ]
}
)
db.createCollection("coleccion");