Skip to content
This repository has been archived by the owner on Jul 11, 2022. It is now read-only.

Commit

Permalink
setup volume dir for docker images
Browse files Browse the repository at this point in the history
Signed-off-by: Jason McCallister <jason@craftcms.com>
  • Loading branch information
jasonmccallister committed Apr 3, 2020
1 parent b16c97c commit 15d92db
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 deletions.
2 changes: 2 additions & 0 deletions internal/nitro/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ runcmd:
- sudo usermod -aG docker ubuntu
- wget -q -O - https://packages.blackfire.io/gpg.key | sudo apt-key add -
- echo "deb http://packages.blackfire.io/debian any main" | sudo tee /etc/apt/sources.list.d/blackfire.list
- sudo mkdir -p /opt/nitro/storage/{mysql,postgres}
- sudo chown -R ubuntu:ubuntu /opt/nitro
`

type Command struct {
Expand Down
15 changes: 14 additions & 1 deletion scripts/docker.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package scripts

import "fmt"

// DockerRunDatabase builds the commands to run a database inside of docker for a machine.
func DockerRunDatabase(name, engine, version string) []string {
var port string
Expand All @@ -13,7 +15,18 @@ func DockerRunDatabase(name, engine, version string) []string {
envvars = []string{"-e", "MYSQL_ROOT_PASSWORD=nitro", "-e", "MYSQL_DATABASE=nitro", "-e", "MYSQL_USER=nitro", "-e", "MYSQL_PASSWORD=nitro"}
}

commands := []string{"exec", name, "--", "docker", "run", "-d", "--restart=always", "-p", port + ":" + port}
// TODO clean this up
imageName := fmt.Sprintf("nitro_%v_%v", engine, version)
hostPath := fmt.Sprintf("/opt/nitro/volumes/%v", engine)
var containerPath string
if engine == "mysql" {
containerPath = "/var/lib/mysql"
} else {
containerPath = "/var/lib/postgresql/data"
}
volumeMount := fmt.Sprintf("%v:%v", hostPath, containerPath)

commands := []string{"exec", name, "--", "docker", "run", "-v", volumeMount, "--name", imageName, "-d", "--restart=always", "-p", port + ":" + port}

// append the environment variables
commands = append(commands, envvars...)
Expand Down
4 changes: 2 additions & 2 deletions scripts/docker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ func TestRunDatabase(t *testing.T) {
engine: "postgres",
version: "11.5",
},
want: []string{"exec", "some-name", "--", "docker", "run", "-d", "--restart=always", "-p", "5432:5432", "-e", "POSTGRES_PASSWORD=nitro", "-e", "POSTGRES_USER=nitro", "-e", "POSTGRES_DB=nitro", "postgres" + ":" + "11.5"},
want: []string{"exec", "some-name", "--", "docker", "run", "-v", "/opt/nitro/volumes/postgres:/var/lib/postgresql/data", "--name", "nitro_postgres_11.5", "-d", "--restart=always", "-p", "5432:5432", "-e", "POSTGRES_PASSWORD=nitro", "-e", "POSTGRES_USER=nitro", "-e", "POSTGRES_DB=nitro", "postgres" + ":" + "11.5"},
},
{
name: "can run mysql",
Expand All @@ -32,7 +32,7 @@ func TestRunDatabase(t *testing.T) {
engine: "mysql",
version: "5.7",
},
want: []string{"exec", "some-name", "--", "docker", "run", "-d", "--restart=always", "-p", "3306:3306", "-e", "MYSQL_ROOT_PASSWORD=nitro", "-e", "MYSQL_DATABASE=nitro", "-e", "MYSQL_USER=nitro", "-e", "MYSQL_PASSWORD=nitro", "mysql" + ":" + "5.7"},
want: []string{"exec", "some-name", "--", "docker", "run", "-v", "/opt/nitro/volumes/mysql:/var/lib/mysql", "--name", "nitro_mysql_5.7", "-d", "--restart=always", "-p", "3306:3306", "-e", "MYSQL_ROOT_PASSWORD=nitro", "-e", "MYSQL_DATABASE=nitro", "-e", "MYSQL_USER=nitro", "-e", "MYSQL_PASSWORD=nitro", "mysql" + ":" + "5.7"},
},
}
for _, tt := range tests {
Expand Down

0 comments on commit 15d92db

Please # to comment.