Merge pull request #2142 from bluewave-labs/fix/prod-docker

corrected script
This commit is contained in:
Alexander Holliday authored and GitHub committed 2025-04-25 16:16:57 -07:00
commit 262a48bdab
1 file changed
+14 -42
+14 -42
View File
@@ -1,59 +1,31 @@
function sleep(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function initReplicaSet() {
function waitForPrimary() {
while (true) {
try {
rs.initiate({
_id: "rs0",
members: [{ _id: 0, host: "localhost:27017" }],
});
print("Replica set initiated.");
break;
} catch (e) {
print("Replica set initiation failed, retrying in 2s...");
await sleep(2000);
sleep(2000);
}
}
// Wait until the node becomes primary
while (true) {
try {
const status = rs.status();
if (status.myState === 1) {
print("Node is now PRIMARY.");
break;
}
} catch (e) {
print("⏳ Waiting for PRIMARY state...");
}
await sleep(1000);
}
}
async function createAppUser() {
const username = process.env.USERNAME_ENV_VAR;
const password = process.env.PASSWORD_ENV_VAR;
waitForPrimary();
if (!username || !password) {
throw new Error("USERNAME_ENV_VAR or PASSWORD_ENV_VAR not set.");
}
// Switch to uptime_db
db = db.getSiblingDB("uptime_db");
const dbName = "uptime_db";
const userDb = db.getSiblingDB(dbName);
// Create app user
var username = _getEnv("USERNAME_ENV_VAR");
var password = _getEnv("PASSWORD_ENV_VAR");
try {
userDb.createUser({
user: username,
pwd: password,
roles: [{ role: "readWrite", db: dbName }],
});
print(`✅ User '${username}' created successfully.`);
} catch (e) {
print(`⚠️ Failed to create user '${username}': ${e.message}`);
}
}
db.createUser({
user: username,
pwd: password,
roles: [{ role: "readWrite", db: "uptime_db" }],
});
await initReplicaSet();
await createAppUser();
print("User '" + username + "' created successfully");