package go import ( "universe.dagger.io/docker" ) // Go image default version _#DefaultVersion: "1.18" // Build a go base image #Image: { version: *_#DefaultVersion | string packages: [pkgName=string]: version: string | *"" // FIXME Remove once golang image include 1.18 *or* go compiler is smart with -buildvcs packages: { git: _ // For GCC and other possible build dependencies "alpine-sdk": _ } // FIXME Basically a copy of alpine.#Build with a different image // Should we create a special definition? docker.#Build & { steps: [ docker.#Pull & { source: "index.docker.io/golang:\(version)-alpine" }, for pkgName, pkg in packages { docker.#Run & { command: { name: "apk" args: ["add", "\(pkgName)\(pkg.version)"] flags: { "-U": true "--no-cache": true } } } }, ] } }