Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
init-mongo.js 1.05 KiB
Newer Older
Pierre Jarriges's avatar
Pierre Jarriges committed
function getEnvVariable(envVar) {
    // Thanks for the tip: https://dev.to/jsheridanwells/dockerizing-a-mongo-database-4jf2

    const command = run("sh", "-c", `printenv --null ${envVar} >/mongoinit/${envVar}.txt`);
    // note: 'printenv --null' prevents adding line break to value

    if (command != 0) return Error("Failed to retrieve env variable : " + envVar);

    // .replace(/\0/g, '') removes the NULL characters
    return cat(`/mongoinit/${envVar}.txt`).replace(/\0/g, '');
}

db.createUser({
    user: getEnvVariable("MONGO_INITDB_NON_ROOT_USERNAME"),
    pwd: getEnvVariable("MONGO_INITDB_NON_ROOT_PASSWORD"),
    roles: [
        {
            role: "readWrite",
            db: getEnvVariable("MONGO_INITDB_DATABASE")
        }
    ]
});

db = new Mongo().getDB(getEnvVariable("MONGO_INITDB_DATABASE"));

db.createCollection("articles");
db.createCollection("administrators");

db.administrators.createIndex({ "username": 1 }, { unique: true });
db.administrators.createIndex({ "auth_token": 1 }, { unique: true });


run("sh", "-c", "rm -rf /mongoinit/*");