Skip to content

Commit c7ee068

Browse files
committed
add provision to pull docker image before deployment
1 parent ed144a9 commit c7ee068

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

internal/service/docker.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package service
33
import (
44
"context"
55
"fmt"
6+
"io"
67
"log"
8+
"os"
79

810
"github.com/docker/docker/api/types"
911
"github.com/docker/docker/api/types/container"
@@ -26,7 +28,8 @@ func (d *dockerService) getContainerConfigs(ctx context.Context) (*container.Con
2628
return nil, fmt.Errorf("error getting docker env configs: %v", err)
2729
}
2830
return &container.Config{
29-
Image: d.Image,
31+
Image: d.Image,
32+
3033
Env: dockerEnvs,
3134
ExposedPorts: exposedPorts,
3235
Labels: map[string]string{
@@ -55,6 +58,7 @@ func (d *dockerService) deployDocker(ctx context.Context) error {
5558
if err != nil {
5659
return fmt.Errorf("error while creating docker client: %v", err)
5760
}
61+
5862
containerConfigs, err := d.getContainerConfigs(ctx)
5963
if err != nil {
6064
return fmt.Errorf("error while getting container configs: %v", err)
@@ -63,6 +67,14 @@ func (d *dockerService) deployDocker(ctx context.Context) error {
6367
if err != nil {
6468
return fmt.Errorf("error while getting host configs: %v", err)
6569
}
70+
71+
fmt.Println("Pulling/Updating image...")
72+
reader, err := client.ImagePull(ctx, containerConfigs.Image, types.ImagePullOptions{})
73+
if err != nil {
74+
return fmt.Errorf("error while pulling image: %v", err)
75+
}
76+
io.Copy(os.Stdout, reader)
77+
6678
fmt.Println("Creating container...")
6779
if d.ContainerName == "" {
6880
d.ContainerName = d.Name

0 commit comments

Comments
 (0)