8000 Installation instructions · Issue #1 · marxarelli/masse · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Installation instructions #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
tvandinther opened this issue Apr 28, 2025 · 3 comments
Closed

Installation instructions #1

tvandinther opened this issue Apr 28, 2025 · 3 comments

Comments

@tvandinther
Copy link
tvandinther commented Apr 28, 2025

I'm a newbie to buildkit frontends. I thought that perhaps your tool did the building but I see the README uses docker buildx build command. How do I install your tool so that I can use it with the docker command? Are there also alternative binaries which this can be used with (such as podman?).

Some installation/usage instructions that help someone get started as a user would be wonderful :)

@mvdan
Copy link
mvdan commented Apr 30, 2025

I'd also be interested in understanding how to use this with podman :)

@marxarelli
Copy link
Owner
marxarelli commented May 14, 2025

I finally have some time to address this. Sorry for such a late response!

The short of it is that Massé is a BuildKit frontend and as such:

  1. It is only compatible with BuildKit which is provided by Docker Engine as the default image builder. That said, buildkitd can also be run independently of Docker Engine and you may be able to run BuildKit using podman. I haven't done this before, but perhaps I will experiment with it as a solution for podman users.
  2. If you're using docker buildx (or even docker build with Docker >= 23.0), there is no installation necessary. You only need a // syntax= line at the top of the Massé/CUE configuration file.
Minimal Masse example
-- build.cue --
// syntax=marxarelli/masse:v1.8.0
package main

import (
        "github.com/marxarelli/masse"
)

masse.Config

chains: foo: [
        { image: "debian:stable"},
        { sh: "echo hello world > /foo" },
]

targets: foo: build: "foo"
-- cue.mod/module.cue --
module: "cue.example"
language: {
        version: "v0.13.0"
}
deps: {
        "github.com/marxarelli/masse@v1": {
                v:       "v1.8.0"
                default: true
        }
}
$ docker buildx build -f build.cue --target foo .

When buildkitd receives the configuration, it will look for the syntax line, download the Massé gateway image, and run the gateway in a separate containerized process, 9458 letting it take over the rest of the build process.

I will add a section to the README about this. Thanks for the feedback!

For more user focused documentation about the syntax line and alternative Docker frontends, see the upstream documentation on Custom Dockerfile syntax.

For a nitty gritty view of the BuildKit architecture around gateway frontends like Massé, see the BuildKit architectural documentation.

@marxarelli
Copy link
Owner

@tvandinther I've clarified requirements and usage in the README.md and added a simple example that I hope will get folks started.

Next up is to write more examples, some getting started high-level docs, and see if I can generate reference documentation for the schema.

Closing this out but please reopen if you feel the requirements and usage still isn't clear.

Also, I tested running buildkitd in Podman and it works so I mentioned that in the README as well. However, it's still a bit awkward that docker buildx is the client, so I'm considering whether a masse build CLI is needed as a BuildKit client specific to Massé.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants
0