about summary refs log tree commit diff
path: root/tools/nixery/builder
diff options
context:
space:
mode:
authorJérôme Petazzoni <jerome.petazzoni@gmail.com>2021-12-23T11·19+0100
committerVincent Ambo <mail@tazj.in>2021-12-27T08·26+0300
commitdd7de32c36845ea40b73b85084c7d5e80027d96e (patch)
treee8763f78bd4a0ed36346283b50161f20ed9bbf33 /tools/nixery/builder
parent7433d620bbe82fb2642097226a580b96487f32c0 (diff)
feat: set SSL_CERT_FILE and provide a Cmd
Two minor "quality of life" improvements:
- automatically set SSL_CERT_FILE environment variable,
  so that programs relying on OpenSSL for certificate
  validation can actually validate certificates
  (the certificates are included no matter what since
  we add the "cacert" package to all iamges)
- if the requested image includes an interactive shell
  (e.g. if it includes the "shell" metapackage), set
  the image Cmd to "bash", which allows to execute
  "docker run nixery.dev/shell" and get a shell)

I'm happy to split this PR in two if you'd like, but
since both features touch the Config structure and are
rather small, I thought it would make sense to bundle
them together.
Diffstat (limited to 'tools/nixery/builder')
-rw-r--r--tools/nixery/builder/builder.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/tools/nixery/builder/builder.go b/tools/nixery/builder/builder.go
index 115f1e37ef..4279cb0a11 100644
--- a/tools/nixery/builder/builder.go
+++ b/tools/nixery/builder/builder.go
@@ -493,7 +493,15 @@ func BuildImage(ctx context.Context, s *State, image *Image) (*BuildResult, erro
 		return nil, err
 	}
 
-	m, c := manifest.Manifest(image.Arch.imageArch, layers)
+	// If the requested packages include a shell,
+	// set cmd accordingly.
+	cmd := ""
+	for _, pkg := range image.Packages {
+		if pkg == "bashInteractive" {
+			cmd = "bash"
+		}
+	}
+	m, c := manifest.Manifest(image.Arch.imageArch, layers, cmd)
 
 	lw := func(w io.Writer) error {
 		r := bytes.NewReader(c.Config)