Skip to content

Commit 025479a

Browse files
authored
Added templating for docker-compose
1 parent 7b44277 commit 025479a

File tree

6 files changed

+55
-4
lines changed

6 files changed

+55
-4
lines changed

cmd/generate.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ var generateCmd = &cobra.Command{
4848
proto.Generate(Templator, cfg)
4949
golang.Generate(Templator, cfg)
5050
docker.GenerateGoAppDockerFile(Templator, cfg)
51+
docker.GenerateGoDockerCompose(Templator, cfg)
5152
case React:
5253
react.Generate(Templator, cfg)
5354
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
version: "3.7"
2+
3+
services:
4+
app:
5+
build:
6+
context: .
7+
dockerfile: docker/app/Dockerfile
8+
ports:
9+
- "3000:3000"
10+
http:
11+
build:
12+
context: .
13+
dockerfile: docker/http/Dockerfile
14+
environment:
15+
- APP_HOST=app
16+
- APP_PORT=3000
17+
ports:
18+
- "8080:8080"

generate/docker/generate.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,7 @@ func GenerateGoAppDockerFile(templator *templator.Templator, config *config.Comm
1414
func GenerateGoHttpGWDockerFile(templator *templator.Templator, config *config.Commit0Config) {
1515
util.TemplateFileIfDoesNotExist("docker/http", "Dockerfile", templator.Docker.HttpGatewayDocker, config)
1616
}
17+
18+
func GenerateGoDockerCompose(templator *templator.Templator, config *config.Commit0Config) {
19+
util.TemplateFileIfDoesNotExist("", "docker-compose.yml", templator.Docker.DockerCompose, config)
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
version: "3.7"
2+
3+
services:
4+
app:
5+
build:
6+
context: .
7+
dockerfile: docker/app/Dockerfile
8+
ports:
9+
- "{{ .Network.Grpc.Port }}:{{ .Network.Grpc.Port }}"
10+
{{ if .Network.Http.Enabled }}
11+
http:
12+
build:
13+
context: .
14+
dockerfile: docker/http/Dockerfile
15+
environment:
16+
- APP_HOST=app
17+
- APP_PORT={{ .Network.Grpc.Port }}
18+
ports:
19+
- "{{ .Network.Http.Port }}:{{ .Network.Http.Port }}"
20+
{{- end}}

templator/templator.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type DockerTemplator struct {
1515
ApplicationDocker *template.Template
1616
HttpGatewayDocker *template.Template
1717
DockerIgnore *template.Template
18+
DockerCompose *template.Template
1819
}
1920

2021
type GoTemplator struct {
@@ -112,10 +113,14 @@ func NewDockerFileTemplator(box *packr.Box) *DockerTemplator {
112113
ignoreTemplateSource, _ := box.FindString("docker/dockerignore.tmpl")
113114
ignoreTemplate, _ := template.New("Dockerignore").Parse(ignoreTemplateSource)
114115

116+
composeTemplateSource, _ := box.FindString("docker/dockercompose.tmpl")
117+
composeTemplate, _ := template.New("Dockercompose").Parse(composeTemplateSource)
118+
115119
return &DockerTemplator{
116120
ApplicationDocker: appTemplate,
117121
HttpGatewayDocker: httpTemplate,
118122
DockerIgnore: ignoreTemplate,
123+
DockerCompose: composeTemplate,
119124
}
120125
}
121126

util/util.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"log"
66
"os"
7+
"path"
78
"strings"
89
"text/template"
910
)
@@ -42,12 +43,14 @@ func TemplateFileAndOverwrite(fileDir string, fileName string, template *templat
4243
}
4344

4445
func TemplateFileIfDoesNotExist(fileDir string, fileName string, template *template.Template, data interface{}) {
45-
fullFilePath := fmt.Sprintf("%v/%v", fileDir, fileName)
46+
fullFilePath := path.Join(fileDir, fileName)
4647

4748
if _, err := os.Stat(fullFilePath); os.IsNotExist(err) {
48-
err := CreateDirIfDoesNotExist(fileDir)
49-
if err != nil {
50-
log.Printf("Error creating directory %v: %v", fullFilePath, err)
49+
if (fileDir != "") {
50+
err := CreateDirIfDoesNotExist(fileDir)
51+
if err != nil {
52+
log.Printf("Error creating directory %v: %v", fullFilePath, err)
53+
}
5154
}
5255
createTemplatedFile(fullFilePath, template, data)
5356
} else {

0 commit comments

Comments
 (0)