mongo-replica-initializer/docker.go

27 lines
1.2 KiB
Go

package main
import (
"fmt"
"os/exec"
"time"
)
func dockerNetworkCreate() {
fmt.Printf("\n\033[1;32mCreating Docker network %s for MongoDB replica set %s\033[0m\n", networkName, replicasetName)
exec.Command("/usr/bin/docker network create", networkName)
}
func dockerPullMongo() {
fmt.Printf("\n\033[1;32mPulling MongoDB Image\033[0m\n")
exec.Command("/usr/bin/docker pull mongo")
}
func dockerRunMongo() {
for containerNumber := 0; containerNumber < numberOfContainers; containerNumber++ {
fmt.Printf("\n\033[1;32mStarting MongoDB Container %d with %s GB of memory\033[0m\n", containerNumber, get_memory())
dockerRunCmd := fmt.Sprintf("docker run -d -p 3000%d:27017 --name mongo%d --net %s -e MONGO_INITDB_ROOT_USERNAME=%s -e MONGO_INITDB_ROOT_PASSWORD=%s -v %s/mongo%d:/data/db -v %s:/opt/keyfile --restart unless-stopped mongo mongod --replSet %s --wiredTigerCacheSizeGB %s --keyFile /opt/keyfile/mongodb-keyfile", containerNumber, containerNumber, networkName, mongoInitdbRootUsername, mongoInitdbRootPassword, mongoBasePath, containerNumber, mongoBasePath, replicasetName, get_memory())
exec.Command(dockerRunCmd)
}
fmt.Printf("\n\033[1;32mWaiting for all containers to start\033[0m\n")
time.Sleep(10 * time.Second)
}