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
  • Learn to ignore specific revisions
  • 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/*");