fixed issue with app builder
This commit is contained in:
+78
-64
@@ -379,6 +379,20 @@ func buildImage(tags []string, dockerfileFolder string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BackendPodLabel := "io.kompose.service=backend"
|
||||||
|
|
||||||
|
backendPodList, podListErr := client.CoreV1().Pods("shuffle").List(context.TODO(), metav1.ListOptions{
|
||||||
|
LabelSelector: BackendPodLabel,
|
||||||
|
})
|
||||||
|
|
||||||
|
if podListErr != nil || len(backendPodList.Items) == 0 {
|
||||||
|
fmt.Println("Error getting backend pod or no pod found:", podListErr)
|
||||||
|
return podListErr
|
||||||
|
}
|
||||||
|
|
||||||
|
backendNodeName := backendPodList.Items[0].Spec.NodeName
|
||||||
|
log.Printf("[INFO] Backend running on: %s", backendNodeName)
|
||||||
|
|
||||||
job := &batchv1.Job{
|
job := &batchv1.Job{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "shuffle-app-builder",
|
Name: "shuffle-app-builder",
|
||||||
@@ -405,9 +419,9 @@ func buildImage(tags []string, dockerfileFolder string) error {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// NodeSelector: map[string]string{
|
NodeSelector: map[string]string{
|
||||||
// "node": "master",
|
"node": backendNodeName,
|
||||||
// },
|
},
|
||||||
RestartPolicy: corev1.RestartPolicyNever,
|
RestartPolicy: corev1.RestartPolicyNever,
|
||||||
Volumes: []corev1.Volume{
|
Volumes: []corev1.Volume{
|
||||||
{
|
{
|
||||||
@@ -463,68 +477,68 @@ func buildImage(tags []string, dockerfileFolder string) error {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
client, err := client.NewEnvClient()
|
client, err := client.NewEnvClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Unable to create docker client: %s", err)
|
log.Printf("Unable to create docker client: %s", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[INFO] Docker Tags: %s", tags)
|
log.Printf("[INFO] Docker Tags: %s", tags)
|
||||||
dockerfileSplit := strings.Split(dockerfileFolder, "/")
|
dockerfileSplit := strings.Split(dockerfileFolder, "/")
|
||||||
|
|
||||||
// Create a buffer
|
// Create a buffer
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
tw := tar.NewWriter(buf)
|
tw := tar.NewWriter(buf)
|
||||||
defer tw.Close()
|
defer tw.Close()
|
||||||
baseDir := strings.Join(dockerfileSplit[0:len(dockerfileSplit)-1], "/")
|
baseDir := strings.Join(dockerfileSplit[0:len(dockerfileSplit)-1], "/")
|
||||||
|
|
||||||
// Builds the entire folder into buf
|
// Builds the entire folder into buf
|
||||||
err = getParsedTar(tw, baseDir, "")
|
err = getParsedTar(tw, baseDir, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Tar issue: %s", err)
|
log.Printf("Tar issue: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
dockerFileTarReader := bytes.NewReader(buf.Bytes())
|
dockerFileTarReader := bytes.NewReader(buf.Bytes())
|
||||||
buildOptions := types.ImageBuildOptions{
|
buildOptions := types.ImageBuildOptions{
|
||||||
Remove: true,
|
Remove: true,
|
||||||
Tags: tags,
|
Tags: tags,
|
||||||
BuildArgs: map[string]*string{},
|
BuildArgs: map[string]*string{},
|
||||||
}
|
}
|
||||||
//NetworkMode: "host",
|
//NetworkMode: "host",
|
||||||
|
|
||||||
httpProxy := os.Getenv("HTTP_PROXY")
|
httpProxy := os.Getenv("HTTP_PROXY")
|
||||||
if len(httpProxy) > 0 {
|
if len(httpProxy) > 0 {
|
||||||
buildOptions.BuildArgs["HTTP_PROXY"] = &httpProxy
|
buildOptions.BuildArgs["HTTP_PROXY"] = &httpProxy
|
||||||
}
|
}
|
||||||
httpsProxy := os.Getenv("HTTPS_PROXY")
|
httpsProxy := os.Getenv("HTTPS_PROXY")
|
||||||
if len(httpProxy) > 0 {
|
if len(httpProxy) > 0 {
|
||||||
buildOptions.BuildArgs["https_proxy"] = &httpsProxy
|
buildOptions.BuildArgs["https_proxy"] = &httpsProxy
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build the actual image
|
// Build the actual image
|
||||||
imageBuildResponse, err := client.ImageBuild(
|
imageBuildResponse, err := client.ImageBuild(
|
||||||
ctx,
|
ctx,
|
||||||
dockerFileTarReader,
|
dockerFileTarReader,
|
||||||
buildOptions,
|
buildOptions,
|
||||||
)
|
)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the STDOUT from the build process
|
// Read the STDOUT from the build process
|
||||||
defer imageBuildResponse.Body.Close()
|
defer imageBuildResponse.Body.Close()
|
||||||
buildBuf := new(strings.Builder)
|
buildBuf := new(strings.Builder)
|
||||||
_, err = io.Copy(buildBuf, imageBuildResponse.Body)
|
_, err = io.Copy(buildBuf, imageBuildResponse.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
} else {
|
} else {
|
||||||
if strings.Contains(buildBuf.String(), "errorDetail") {
|
if strings.Contains(buildBuf.String(), "errorDetail") {
|
||||||
log.Printf("[ERROR] Docker build:\n%s\nERROR ABOVE: Trying to pull tags from: %s", buildBuf.String(), strings.Join(tags, "\n"))
|
log.Printf("[ERROR] Docker build:\n%s\nERROR ABOVE: Trying to pull tags from: %s", buildBuf.String(), strings.Join(tags, "\n"))
|
||||||
return errors.New(fmt.Sprintf("Failed building %s. Check backend logs for details. Most likely means you have an old version of Docker.", strings.Join(tags, ",")))
|
return errors.New(fmt.Sprintf("Failed building %s. Check backend logs for details. Most likely means you have an old version of Docker.", strings.Join(tags, ",")))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -390,7 +390,7 @@ spec:
|
|||||||
key: REGISTRY_AUTH
|
key: REGISTRY_AUTH
|
||||||
name: env
|
name: env
|
||||||
image: dhavald055/shuffle-k8s:shuffle-backend-kubernetes
|
image: dhavald055/shuffle-k8s:shuffle-backend-kubernetes
|
||||||
#imagePullPolicy: Never
|
imagePullPolicy: Always
|
||||||
name: shuffle-backend
|
name: shuffle-backend
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 5001
|
- containerPort: 5001
|
||||||
|
|||||||
Reference in New Issue
Block a user