diff --git a/client/src/pages/servapps/containers/docker-compose.jsx b/client/src/pages/servapps/containers/docker-compose.jsx index 2b7b7f9..3dead81 100644 --- a/client/src/pages/servapps/containers/docker-compose.jsx +++ b/client/src/pages/servapps/containers/docker-compose.jsx @@ -86,7 +86,15 @@ const DockerComposeImport = ({refresh}) => { setYmlError(e.message); return; } + + if (typeof doc === 'object' && doc !== null && Object.keys(doc).length > 0 && + !doc.services && !doc.networks && !doc.volumes) { + doc = { + services: Object.assign({}, doc) + } + } + // convert to the proper format if(doc.services) { Object.keys(doc.services).forEach((key) => { @@ -129,6 +137,16 @@ const DockerComposeImport = ({refresh}) => { } } + // convert environment + if(doc.services[key].environment) { + if(!Array.isArray(doc.services[key].environment)) { + let environment = []; + Object.keys(doc.services[key].environment).forEach((keyenv) => { + environment.push(keyenv + '=' + doc.services[key].environment[keyenv]); + }); + doc.services[key].environment = environment; + } + } // convert network if(doc.services[key].networks) { @@ -140,6 +158,11 @@ const DockerComposeImport = ({refresh}) => { doc.services[key].networks = networks; } } + + // ensure container_name + if(!doc.services[key].container_name) { + doc.services[key].container_name = key; + } }); } diff --git a/package.json b/package.json index 2a4032f..be2294b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cosmos-server", - "version": "0.5.6", + "version": "0.5.7-unstable", "description": "", "main": "test-server.js", "bugs": { diff --git a/src/docker/run.go b/src/docker/run.go index 10b79fd..f29c213 100644 --- a/src/docker/run.go +++ b/src/docker/run.go @@ -27,7 +27,7 @@ func NewDB(w http.ResponseWriter, req *http.Request) (string, error) { mongoPass := utils.GenerateRandomString(24) monHost := "cosmos-mongo-" + id - imageName := "mongo:5" + imageName := "mongo:latest" // if CPU is missing AVX, use 4.4 if runtime.GOARCH == "amd64" && !cpu.X86.HasAVX { @@ -37,6 +37,14 @@ func NewDB(w http.ResponseWriter, req *http.Request) (string, error) { service := DockerServiceCreateRequest{ Services: map[string]ContainerCreateRequestContainer {}, + Volumes: []ContainerCreateRequestVolume{ + ContainerCreateRequestVolume{ + Name: "cosmos-mongo-data-" + id, + }, + ContainerCreateRequestVolume{ + Name: "cosmos-mongo-config-" + id, + }, + }, } service.Services[monHost] = ContainerCreateRequestContainer{