Skip to content

Commit a3b8cdf

Browse files
author
Andrea Falzetti
committed
fix: gp rebuild
1 parent ba6ce0e commit a3b8cdf

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

components/gitpod-cli/cmd/rebuild.go

+15-15
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
7979
fmt.Println("Alternatively, check out the following docs for getting started configuring your project")
8080
fmt.Println("https://www.gitpod.io/docs/configure#configure-gitpod")
8181
event.Set("ErrorCode", utils.RebuildErrorCode_MissingGitpodYaml)
82-
return err
82+
return nil
8383
}
8484

8585
var baseimage string
@@ -109,7 +109,7 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
109109
fmt.Println("")
110110
fmt.Println("Once you configure your Dockerfile, re-run this command to validate your changes")
111111
event.Set("ErrorCode", utils.RebuildErrorCode_DockerfileEmpty)
112-
return err
112+
return nil
113113
}
114114
baseimage = "\n" + string(dockerfile) + "\n"
115115
default:
@@ -124,10 +124,12 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
124124
fmt.Println("")
125125
fmt.Println("https://www.gitpod.io/docs/configure/workspaces/workspace-image#use-a-public-docker-image")
126126
event.Set("ErrorCode", utils.RebuildErrorCode_NoCustomImage)
127-
return err
127+
return nil
128128
}
129129

130-
err = os.WriteFile(filepath.Join(tmpDir, "Dockerfile"), []byte(baseimage), 0644)
130+
tmpDockerfile := filepath.Join(tmpDir, "Dockerfile")
131+
132+
err = os.WriteFile(tmpDockerfile, []byte(baseimage), 0644)
131133
if err != nil {
132134
fmt.Println("Could not write the temporary Dockerfile")
133135
event.Set("ErrorCode", utils.RebuildErrorCode_DockerfileCannotWirte)
@@ -143,7 +145,7 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
143145

144146
tag := "gp-rebuild-temp-build"
145147

146-
dockerCmd := exec.Command(dockerPath, "build", "-t", tag, "--progress=tty", ".")
148+
dockerCmd := exec.Command(dockerPath, "build", "-f", tmpDockerfile, "-t", tag, "--progress=tty", wsInfo.CheckoutLocation)
147149
dockerCmd.Dir = tmpDir
148150
dockerCmd.Stdout = os.Stdout
149151
dockerCmd.Stderr = os.Stderr
@@ -153,7 +155,7 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
153155
if _, ok := err.(*exec.ExitError); ok {
154156
fmt.Println("Image Build Failed")
155157
event.Set("ErrorCode", utils.RebuildErrorCode_DockerBuildFailed)
156-
return err
158+
return nil
157159
} else if err != nil {
158160
fmt.Println("Docker error")
159161
event.Set("ErrorCode", utils.RebuildErrorCode_DockerErr)
@@ -183,26 +185,24 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
183185
"--label", "gp-rebuild=true",
184186
"-it",
185187
tag,
186-
"bash",
188+
"sh",
187189
"-c",
188-
fmt.Sprintf("echo '%s'; bash", welcomeMessage),
190+
fmt.Sprintf("echo '%s'; sh", welcomeMessage),
189191
)
190192

191193
dockerRunCmd.Stdout = os.Stdout
192194
dockerRunCmd.Stderr = os.Stderr
193195
dockerRunCmd.Stdin = os.Stdin
194196

195-
err = dockerRunCmd.Run()
196-
if _, ok := err.(*exec.ExitError); ok {
197-
fmt.Println("Docker Run Command Failed")
197+
err = dockerRunCmd.Start()
198+
if err != nil {
199+
fmt.Println("Failed to run docker container")
198200
event.Set("ErrorCode", utils.RebuildErrorCode_DockerRunFailed)
199201
return err
200-
} else if err != nil {
201-
fmt.Println("Docker error")
202-
event.Set("ErrorCode", utils.RebuildErrorCode_DockerErr)
203-
return err
204202
}
205203

204+
_ = dockerRunCmd.Wait()
205+
206206
return nil
207207
}
208208

0 commit comments

Comments
 (0)