Skip to content

Instantly share code, notes, and snippets.

@weakpixel
weakpixel / push-docker-multi-image-tar.go
Last active November 1, 2023 06:54
Use Crane to push a Docker multi image to registry
package main
import (
"flag"
"fmt"
"io"
"os"
"path"
"github.com/google/go-containerregistry/pkg/crane"
package main
import (
"fmt"
"os"
"strings"
"github.com/spf13/cobra"
"github.com/zclconf/go-cty/cty"
package main
import (
"fmt"
"os"
"strings"
"github.com/spf13/cobra"
"github.com/zclconf/go-cty/cty"
package main
import (
"fmt"
"os"
"github.com/hashicorp/hcl/v2"
"github.com/hashicorp/hcl/v2/gohcl"
"github.com/hashicorp/hcl/v2/hclsimple"
)
import (
"fmt"
"os"
"github.com/hashicorp/hcl/v2"
"github.com/hashicorp/hcl/v2/gohcl"
"github.com/hashicorp/hcl/v2/hclsimple"
)
var (
type Runner interface {
Run() error
}
type Config struct {
Tasks []*Task `hcl:"task,block"`
}
type Task struct {
Name string `hcl:"name,label"`
Steps []*Step `hcl:"step,block"`
}
type Step struct {
task "first_task" {
step "mkdir" "build_dir" {
path = "./build/"
}
step "exec" "list_build_dir" {
command = "ls ./build/"
}
}
type Task struct {
Name string `hcl:"name,label"`
ExecSteps []*ExecStep `hcl:"exec,block"`
MkdirStep []*MkdirStep `hcl:"mkdir,block"`
}
task "first_task" {
mkdir "build_dir" {
path = "./build"
}
exec "list_var_dir" {
command = "ls /var"
}
}