Hello, I have there 3 funcs
// WithUpdatedAptCache updates the apt cache on the container
func (c *NodeContainer) WithUpdatedAptCache() dagger.WithContainerFunc {
return func(dag *dagger.Container) *dagger.Container {
var err error
log.Info().Msg("Updating apt cache")
dag, err = dag.WithExec([]string{"apt", "update"}).Sync(c.ctx)
if err != nil {
log.Fatal().Err(err).Msg("Failed to run [apt update]")
}
utils.LogDebugStd(c.ctx, dag, "WithUpdatedAptCache")
return dag
}
}
// WithDefaultPackages installs default packages for the container
func (c *NodeContainer) WithDefaultPackages() dagger.WithContainerFunc {
return func(dag *dagger.Container) *dagger.Container {
pkg := []string{"pre-commit", "nano"}
dag.With(c.WithPackages(pkg...))
return dag
}
}
// WithPackages installs packages for the container
func (c *NodeContainer) WithPackages(pkg ...string) dagger.WithContainerFunc {
return func(dag *dagger.Container) *dagger.Container {
var err error
if len(pkg) == 0 {
log.Info().Msg("[WithPackages] - No packages specified, skipping")
return dag
}
dag.With(c.WithUpdatedAptCache())
log.Info().Msgf("Installing packages: %v", pkg)
pkg = append([]string{"apt", "install", "-y"}, pkg...)
dag, err = dag.WithExec(pkg).Sync(c.ctx)
if err != nil {
log.Fatal().Err(err).Msg("[WithPackages] - Failed to run [apt install]")
}
utils.LogDebugStd(c.ctx, dag, "WithPackages")
return dag
}
}