Demo: BuildKit locally

Demo: BuildKit locally

Requires daemon and CLI

Run BuildKit daemon locally:

sudo buildkitd 2>&1 >/tmp/buildkit.log &

Run build against daemon:

buildctl build \
    --frontend dockerfile.v0 \
    --local context=. \
    --local dockerfile=.

Demo: BuildKit daemon containerized

Run only the BuildKit daemon in a container

Run BuildKit daemon in a privileged container:

docker run --name buildkitd \
    --detach \
    --privileged \
    --publish 127.0.0.1:1234:1234 \
    moby/buildkit \
        --addr tcp://0.0.0.0:1234

Run build against daemon:

buildctl \
    --addr tcp://127.0.0.1:1234 \
    build \
        --frontend dockerfile.v0 \
        --local context=. \
        --local dockerfile=.

Demo: BuildKit fully containerized

Run BuildKit daemon and CLI in a container

Run BuildKit daemon in a privileged container:

docker run --name buildkitd \
    --detach \
    --privileged \
    --publish 127.0.0.1:1234:1234 \
    moby/buildkit \
        --addr tcp://0.0.0.0:1234

Run buildctl from container:

docker run --interactive --tty \
    --network container:buildkitd \
    --volume $PWD:/src \
    --workdir /src \
    --entrypoint buildctl \
    moby/buildkit \
        --addr tcp://127.0.0.1:1234 \
        build \
            --frontend dockerfile.v0 \
            --local context=. \
            --local dockerfile=.

Demo: BuildKit daemonless

Let a script take care of running the daemon on-demand

Run a build locally

buildctl-daemonless.sh build \
    --frontend dockerfile.v0 \
    --local context=. \
    --local dockerfile=.

Run a build containerized

docker run -it \
    --privileged \
    --volume $PWD:/src \
    --workdir /src \
    --entrypoint buildctl-daemonless.sh \
    moby/buildkit build \
        --frontend dockerfile.v0 \
        --local context=. \
        --local dockerfile=.