@@ -79,7 +79,7 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
79
79
fmt .Println ("Alternatively, check out the following docs for getting started configuring your project" )
80
80
fmt .Println ("https://www.gitpod.io/docs/configure#configure-gitpod" )
81
81
event .Set ("ErrorCode" , utils .RebuildErrorCode_MissingGitpodYaml )
82
- return err
82
+ return nil
83
83
}
84
84
85
85
var baseimage string
@@ -109,7 +109,7 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
109
109
fmt .Println ("" )
110
110
fmt .Println ("Once you configure your Dockerfile, re-run this command to validate your changes" )
111
111
event .Set ("ErrorCode" , utils .RebuildErrorCode_DockerfileEmpty )
112
- return err
112
+ return nil
113
113
}
114
114
baseimage = "\n " + string (dockerfile ) + "\n "
115
115
default :
@@ -124,10 +124,12 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
124
124
fmt .Println ("" )
125
125
fmt .Println ("https://www.gitpod.io/docs/configure/workspaces/workspace-image#use-a-public-docker-image" )
126
126
event .Set ("ErrorCode" , utils .RebuildErrorCode_NoCustomImage )
127
- return err
127
+ return nil
128
128
}
129
129
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 )
131
133
if err != nil {
132
134
fmt .Println ("Could not write the temporary Dockerfile" )
133
135
event .Set ("ErrorCode" , utils .RebuildErrorCode_DockerfileCannotWirte )
@@ -143,7 +145,7 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
143
145
144
146
tag := "gp-rebuild-temp-build"
145
147
146
- dockerCmd := exec .Command (dockerPath , "build" , "-t" , tag , "--progress=tty" , "." )
148
+ dockerCmd := exec .Command (dockerPath , "build" , "-f" , tmpDockerfile , "- t" , tag , "--progress=tty" , wsInfo . CheckoutLocation )
147
149
dockerCmd .Dir = tmpDir
148
150
dockerCmd .Stdout = os .Stdout
149
151
dockerCmd .Stderr = os .Stderr
@@ -153,7 +155,7 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
153
155
if _ , ok := err .(* exec.ExitError ); ok {
154
156
fmt .Println ("Image Build Failed" )
155
157
event .Set ("ErrorCode" , utils .RebuildErrorCode_DockerBuildFailed )
156
- return err
158
+ return nil
157
159
} else if err != nil {
158
160
fmt .Println ("Docker error" )
159
161
event .Set ("ErrorCode" , utils .RebuildErrorCode_DockerErr )
@@ -183,26 +185,24 @@ func runRebuild(ctx context.Context, supervisorClient *supervisor.SupervisorClie
183
185
"--label" , "gp-rebuild=true" ,
184
186
"-it" ,
185
187
tag ,
186
- "bash " ,
188
+ "sh " ,
187
189
"-c" ,
188
- fmt .Sprintf ("echo '%s'; bash " , welcomeMessage ),
190
+ fmt .Sprintf ("echo '%s'; sh " , welcomeMessage ),
189
191
)
190
192
191
193
dockerRunCmd .Stdout = os .Stdout
192
194
dockerRunCmd .Stderr = os .Stderr
193
195
dockerRunCmd .Stdin = os .Stdin
194
196
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 " )
198
200
event .Set ("ErrorCode" , utils .RebuildErrorCode_DockerRunFailed )
199
201
return err
200
- } else if err != nil {
201
- fmt .Println ("Docker error" )
202
- event .Set ("ErrorCode" , utils .RebuildErrorCode_DockerErr )
203
- return err
204
202
}
205
203
204
+ _ = dockerRunCmd .Wait ()
205
+
206
206
return nil
207
207
}
208
208
0 commit comments