Добрый вечер,
Я пытаюсь создать какой-то script, который создаст докер с mongodb и автоматически создаст пользователя.
Обычно я могу управлять своими изображениями докеров с помощью docker-compose, но на этот раз я не знаю, как это сделать.
В принципе, вот что мне нужно сделать:
1) очистить/уничтожить контейнер (соединить докер)
2) создайте контейнер-докер с mongodb и запустите его (без параметра -auth)
3) выполните java script, содержащий db.createUser()
4) остановить контейнер
5) перезапустите тот же контейнер с параметром --auth, чтобы разрешить вход в систему с пользователем, созданным в javascript
Я не могу найти, как правильно это сделать с помощью docker-compose, потому что когда он начинается, я должен дать ему команду --auth. Если я это сделаю, я не могу выполнить свой javascript для добавления моего пользователя. MongoDB позволяет создавать пользователей без входа в систему, если нет пользователя, и если параметр -auth не предоставляется.
Я хочу сделать это автоматически, я не хочу вручную выполнять некоторые команды. Цель состоит в том, чтобы иметь script, который может быть выполнен до того, как каждый интеграционный тест начнется с чистой базы данных.
Вот мой проект:
Интеграция-тест/SRC/тест/ресурсы/скрипты/докер-compose.yml
mongodb:
container_name: mongo
image: mongo
ports:
- "27017:27017"
volumes:
- .:/setup
command: --auth
Интеграция-тест/SRC/тест/ресурсы/скрипты/docker-init.sh
docker-compose down
docker-compose up -d
sleep 1
docker exec mongo bash -c "mongo myDatabase /setup/mongodb-setup.js"
Интеграция-тест/SRC/тест/ресурсы/скрипты/MongoDB-setup.js
db.createUser(
{
user: "myUser",
pwd: "myPassword",
roles: [
{ role: "readWrite", db: "myDatabase" }
]
})
Поиск способа начать снова контейнер с новым параметром (в данном случае --auth) поможет, но я не могу найти, как это сделать (запуск docker не принимает параметры).
Любая идея, как я должен делать то, что мне хотелось бы?
Если нет, я все равно могу удалить все из своей базы данных с помощью какого-либо кода Java или что-то еще, но мне нужна полная установка докеры mongodb, созданная с помощью script.
Спасибо!