Skip to content

Push in quay.io/buildah/stable #851

@tlapik123

Description

@tlapik123

Hey! I'm trying to build and push (to gitlab registry) my project in quay.io/buildah/stable build container.
The build works fine when i do:
devcontainer build --docker-path buildah --workspace-folder . --image-name $FQ_IMAGE_NAME

But it fails when I add --push true as:
devcontainer build --docker-path buildah --workspace-folder . --push true --image-name $FQ_IMAGE_NAME

with this error:

[2024-06-28T09:56:10.009Z] @devcontainers/cli 0.65.0. Node.js v20.12.2. linux 6.6.33-0-virt x64.
Error: --platform or --push require BuildKit enabled.
    at mtA (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:466:363)
    at async Pm (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:465:1856)
    at async FrA (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:662:24692)
    at async yrA (/usr/local/lib/node_modules/@devcontainers/cli/dist/spec-node/devContainersSpecCLI.js:662:22435)
{"outcome":"error","message":"--platform or --push require BuildKit enabled.","description":"--platform or --push require BuildKit enabled."}

My CI looks like:

container build and push:
  stage: container-build
  image: quay.io/buildah/stable
  variables:
    # Use vfs with buildah. Docker offers overlayfs as a default, but Buildah
    # cannot stack overlayfs on top of another overlayfs filesystem.
    STORAGE_DRIVER: vfs
    # Write all image metadata in the docker format, not the standard OCI format.
    # Newer versions of docker can handle the OCI format, but older versions, like
    # the one shipped with Fedora 30, cannot handle the format.
    BUILDAH_FORMAT: docker
    BUILDAH_ISOLATION: chroot
  before_script:
    # GitLab container registry credentials taken from the
    # [predefined CI/CD variables](../variables/index.md#predefined-cicd-variables)
    # to authenticate to the registry.
    - echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
    # install devcontainer
    - dnf install -y nodejs npm python3 make g++
    - npm install -g @devcontainers/cli
  script:
    - devcontainer build --docker-path buildah --workspace-folder . --push true --image-name $FQ_IMAGE_NAME

Does devcontainer only support docker when --push? Or is there some other way to get around this issue?
For now I'll try to use podman and report back.

Thank you for your work btw.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingpodman

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions