27 lines
1.2 KiB
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)
|
||
|
}
|