Skip to content

Commit 2ed6a62

Browse files
authored
Merge pull request #112 from giusdp/main
fix docker up
2 parents e02bf6e + 6a1724b commit 2ed6a62

4 files changed

Lines changed: 39 additions & 25 deletions

File tree

internal/command/admin/deploy/docker/docker_down_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func TestDockerDownRun(t *testing.T) {
5656
})
5757

5858
t.Run("should return error when compose down fails", func(t *testing.T) {
59-
path, err := downloadDockerCompose()
59+
path, err := downloadFile("docker-compose.yml", dockerComposeYmlUrl)
6060
require.NoError(t, err)
6161

6262
out.Reset()
@@ -67,7 +67,7 @@ func TestDockerDownRun(t *testing.T) {
6767
})
6868

6969
t.Run("should remove docker-compose.yml when succeds", func(t *testing.T) {
70-
path, err := downloadDockerCompose()
70+
path, err := downloadFile("docker-compose.yml", dockerComposeYmlUrl)
7171
require.NoError(t, err)
7272

7373
out.Reset()

internal/command/admin/deploy/docker/docker_up.go

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ import (
2929

3030
const (
3131
dockerComposeYmlUrl = "https://raw.githubusercontent.com/funlessdev/fl-deploy/main/docker-compose/docker-compose.yml"
32+
envUrl = "https://raw.githubusercontent.com/funlessdev/fl-deploy/main/docker-compose/.env.example"
3233
prometheusConfigYmlUrl = "https://raw.githubusercontent.com/funlessdev/fl-deploy/main/docker-compose/prometheus/config.yml"
34+
filebeatComposeYmlUrl = "https://raw.githubusercontent.com/funlessdev/fl-deploy/main/docker-compose/filebeat/filebeat.compose.yml"
3335
)
3436

3537
type Up struct {
@@ -42,7 +44,7 @@ func (u *Up) Run(ctx context.Context, dk deploy.DockerShell, logger log.FLogger)
4244

4345
_ = logger.StartSpinner("Setting things up...")
4446

45-
composeFilePath, err := downloadDockerCompose()
47+
composeFilePath, err := downloadFile("docker-compose.yml", dockerComposeYmlUrl)
4648
if err != nil {
4749
return logger.StopSpinner(err)
4850
}
@@ -52,7 +54,18 @@ func (u *Up) Run(ctx context.Context, dk deploy.DockerShell, logger log.FLogger)
5254
return logger.StopSpinner(err)
5355
}
5456

55-
if err := downloadPrometheusConfig(); err != nil {
57+
// prometheus config file
58+
if err := downloadFolderFile("prometheus", "config.yml", prometheusConfigYmlUrl); err != nil {
59+
return logger.StopSpinner(err)
60+
}
61+
62+
// filebeat compose file
63+
if err := downloadFolderFile("filebeat", "filebeat.compose.yml", filebeatComposeYmlUrl); err != nil {
64+
return logger.StopSpinner(err)
65+
}
66+
67+
// .env file
68+
if _, err := downloadFile(".env", envUrl); err != nil {
5669
return logger.StopSpinner(err)
5770
}
5871

@@ -68,14 +81,13 @@ func (u *Up) Run(ctx context.Context, dk deploy.DockerShell, logger log.FLogger)
6881
return nil
6982
}
7083

71-
func downloadDockerCompose() (string, error) {
72-
// Check if it's already present
73-
if _, path, err := homedir.ReadFromConfigDir("docker-compose.yml"); err == nil {
84+
func downloadFile(name, url string) (string, error) {
85+
// Check if already present
86+
if _, path, err := homedir.ReadFromConfigDir(name); err == nil {
7487
return path, nil
7588
}
7689

77-
// Download docker-compose.yml
78-
resp, err := http.Get(dockerComposeYmlUrl)
90+
resp, err := http.Get(url)
7991
if err != nil {
8092
return "", err
8193
}
@@ -85,17 +97,19 @@ func downloadDockerCompose() (string, error) {
8597
return "", err
8698
}
8799

88-
return homedir.WriteToConfigDir("docker-compose.yml", content, true)
100+
return homedir.WriteToConfigDir(name, content, true)
101+
89102
}
90103

91-
func downloadPrometheusConfig() error {
104+
func downloadFolderFile(folder, file, url string) error {
105+
filepath := folder + "/" + file
106+
92107
// Check if it's already present
93-
if _, _, err := homedir.ReadFromConfigDir("prometheus/config.yml"); err == nil {
108+
if _, _, err := homedir.ReadFromConfigDir(filepath); err == nil {
94109
return nil
95110
}
96111

97-
// Download prometheus/config.yml
98-
resp, err := http.Get(prometheusConfigYmlUrl)
112+
resp, err := http.Get(url)
99113
if err != nil {
100114
return err
101115
}
@@ -105,11 +119,11 @@ func downloadPrometheusConfig() error {
105119
return err
106120
}
107121

108-
if _, err := homedir.CreateDirInConfigDir("prometheus"); err != nil {
122+
if _, err := homedir.CreateDirInConfigDir(folder); err != nil {
109123
return err
110124
}
111125

112-
_, err = homedir.WriteToConfigDir("prometheus/config.yml", content, true)
126+
_, err = homedir.WriteToConfigDir(filepath, content, true)
113127
return err
114128
}
115129

internal/command/admin/deploy/docker/docker_up_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func TestDockerUpRun(t *testing.T) {
9191
})
9292
}
9393

94-
func Test_downloadDockerCompose(t *testing.T) {
94+
func Test_downloadFile(t *testing.T) {
9595
homedirPath, err := os.MkdirTemp("", "funless-test-homedir-")
9696
require.NoError(t, err)
9797

@@ -104,12 +104,12 @@ func Test_downloadDockerCompose(t *testing.T) {
104104
}()
105105

106106
// Download it for the first time
107-
path, err := downloadDockerCompose()
107+
path, err := downloadFile("docker-compose.yml", dockerComposeYmlUrl)
108108
require.NoError(t, err)
109109
require.FileExists(t, path)
110110

111111
// Now that it exists it should not give errors
112-
path, err = downloadDockerCompose()
112+
path, err = downloadFile("docker-compose.yml", dockerComposeYmlUrl)
113113
require.NoError(t, err)
114114
require.FileExists(t, path)
115115
}
@@ -126,13 +126,13 @@ func Test_downloadPrometheusConfig(t *testing.T) {
126126
os.RemoveAll(homedirPath)
127127
}()
128128

129-
err = downloadPrometheusConfig()
129+
err = downloadFolderFile("prometheus", "config.yml", prometheusConfigYmlUrl)
130130
require.NoError(t, err)
131131

132132
require.DirExists(t, filepath.Join(homedirPath, ".fl", "prometheus"))
133133
require.FileExists(t, filepath.Join(homedirPath, ".fl", "prometheus", "config.yml"))
134134

135-
err = downloadPrometheusConfig()
135+
err = downloadFolderFile("prometheus", "config.yml", prometheusConfigYmlUrl)
136136
require.NoError(t, err)
137137
}
138138

@@ -154,7 +154,7 @@ func Test_replaceImages(t *testing.T) {
154154
})
155155

156156
t.Run("should swap core image when different from default", func(t *testing.T) {
157-
path, err := downloadDockerCompose()
157+
path, err := downloadFile("docker-compose.yml", dockerComposeYmlUrl)
158158
require.NoError(t, err)
159159
defer os.Remove(path)
160160

@@ -173,7 +173,7 @@ func Test_replaceImages(t *testing.T) {
173173
})
174174

175175
t.Run("should swap worker image when different from default", func(t *testing.T) {
176-
path, err := downloadDockerCompose()
176+
path, err := downloadFile("docker-compose.yml", dockerComposeYmlUrl)
177177
require.NoError(t, err)
178178
defer os.Remove(path)
179179

@@ -192,7 +192,7 @@ func Test_replaceImages(t *testing.T) {
192192
})
193193

194194
t.Run("should swap both images when different from default", func(t *testing.T) {
195-
path, err := downloadDockerCompose()
195+
path, err := downloadFile("docker-compose.yml", dockerComposeYmlUrl)
196196
require.NoError(t, err)
197197
defer os.Remove(path)
198198

pkg/docker/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func (c *DockerClient) RunAndWait(ctx context.Context, conf ContainerConfigs) er
122122
select {
123123
case res := <-okC:
124124
if res.StatusCode != 0 {
125-
return fmt.Errorf("error in builder container (status code %d)", res.StatusCode)
125+
return fmt.Errorf("build failed (status code %d)", res.StatusCode)
126126
} else {
127127
return c.RemoveCtr(ctx, resp.ID)
128128
}

0 commit comments

Comments
 (0)