[feat] add pull argument
This commit is contained in:
parent
b351de0f64
commit
1988ed6762
6
Makefile
Normal file
6
Makefile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
.PHONY: build
|
||||||
|
|
||||||
|
BIN_NAME := "docker-save"
|
||||||
|
|
||||||
|
build:
|
||||||
|
@go build -v -o $(BIN_NAME) ./cmd/main.go
|
@ -15,6 +15,7 @@ func main() {
|
|||||||
var outputPath string
|
var outputPath string
|
||||||
var imageName string
|
var imageName string
|
||||||
var tarName string
|
var tarName string
|
||||||
|
var doPull bool
|
||||||
|
|
||||||
rootCmd = &cobra.Command{
|
rootCmd = &cobra.Command{
|
||||||
Use: "docker-save",
|
Use: "docker-save",
|
||||||
@ -26,7 +27,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
if err := docker.SaveImageTar(ctx, imageName, outputPath, tarName); err != nil {
|
if err := docker.SaveImageTar(ctx, imageName, outputPath, tarName, doPull); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -34,6 +35,7 @@ func main() {
|
|||||||
rootCmd.Flags().StringVarP(&outputPath, "output", "o", "", "output path")
|
rootCmd.Flags().StringVarP(&outputPath, "output", "o", "", "output path")
|
||||||
rootCmd.Flags().StringVarP(&imageName, "image", "i", "", "image name")
|
rootCmd.Flags().StringVarP(&imageName, "image", "i", "", "image name")
|
||||||
rootCmd.Flags().StringVarP(&tarName, "name", "n", "", "tar name")
|
rootCmd.Flags().StringVarP(&tarName, "name", "n", "", "tar name")
|
||||||
|
rootCmd.Flags().BoolVarP(&doPull, "pull", "p", false, "pull image")
|
||||||
rootCmd.MarkFlagRequired("image")
|
rootCmd.MarkFlagRequired("image")
|
||||||
rootCmd.MarkFlagRequired("output")
|
rootCmd.MarkFlagRequired("output")
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import (
|
|||||||
"github.com/docker/docker/client"
|
"github.com/docker/docker/client"
|
||||||
)
|
)
|
||||||
|
|
||||||
func SaveImageTar(ctx context.Context, image, path, name string) error {
|
func SaveImageTar(ctx context.Context, image, path, name string, doPull bool) error {
|
||||||
|
|
||||||
cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
|
cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -20,8 +20,10 @@ func SaveImageTar(ctx context.Context, image, path, name string) error {
|
|||||||
}
|
}
|
||||||
defer cli.Close()
|
defer cli.Close()
|
||||||
|
|
||||||
if err := pullImage(ctx, cli, image); err != nil {
|
if doPull {
|
||||||
return fmt.Errorf("pull image %s failed: %v", image, err)
|
if err := pullImage(ctx, cli, image); err != nil {
|
||||||
|
return fmt.Errorf("pull image %s failed: %v", image, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := saveToTar(ctx, cli, image, path, name); err != nil {
|
if err := saveToTar(ctx, cli, image, path, name); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user