Как я могу использовать секреты докера в файле initdb точки входа .js?
Я установил секреты для своего администратора:
mongo:
/*...*/
secrets:
- MONGO_ROOT_USERNAME_SECRET
- MONGO_ROOT_PASSWORD_SECRET
environment:
MONGO_INITDB_ROOT_USERNAME_FILE: /var/run/secrets/MONGO_ROOT_USERNAME_SECRET
MONGO_INITDB_ROOT_PASSWORD_FILE: /var/run/secrets/MONGO_ROOT_PASSWORD_SECRET
MONGO_INITDB_DATABASE: myDb
volumes:
- ./mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
secrets:
MONGO_ROOT_USERNAME_SECRET:
file: secrets/mongo_root_username.txt
MONGO_ROOT_PASSWORD_SECRET:
file: secrets/mongo_root_password.txt
Могу ли я настроить одинаково secrets/mongo_db_username.txt
и пароль, вложите его в секреты и используйте его как-нибудь в моем mongo_init.js
, который выглядит как
db.createUser(
{
user: "devUser", <---- want to use the secret here
pwd: "devPw", <---- want to use the secret here
roles: [
{
role: "readWrite",
db: "myDb"
}
]
}
)
РЕДАКТИРОВАТЬ:
Я нашел способ, используя
let username = cat('/var/run/secrets/MONGO_DB_USERNAME_SECRET');
let password = cat('/var/run/secrets/MONGO_DB_PASSWORD_SECRET');
В моем файле инициализации JS. Но есть ли более чистый путь?