cirocosta / estaleiro

building container images with bill of materials
Apache License 2.0
2 stars 0 forks source link

frontend: multiple files not working #15

Closed cirocosta closed 5 years ago

cirocosta commented 5 years ago

Having multiple files declared is generating an LLB that copies over just a single file:

# syntax=cirocosta/estaleiro

image "concourse/s3-resource" {
  base_image {
    name = "ubuntu"
  }

  apt {
    package "tzdata" {}
    package "ca-certificates" {}
    package "unzip" {}
    package "zip" {}
  }

  file "/opt/resource/check" {
    from_step "build" {
      path = "/assets/check"
    }
  }

  file "/opt/resource/in" {
    from_step "build" {
      path = "/assets/in"
    }
  }

  file "/opt/resource/out" {
    from_step "build" {
      path = "/assets/out"
    }
  }

}

step "build" {
  dockerfile = "./s3-resource/dockerfiles/ubuntu/Dockerfile"
  context    = "./s3-resource"
  target     = "builder"

  source_file "/assets/check" {
    vcs "git" {
      repository = "https://github.com/concourse/s3-resource"
      ref        = "master"
    }
  }

  source_file "/assets/in" {
    vcs "git" {
      repository = "https://github.com/concourse/s3-resource"
      ref        = "master"
    }
  }

  source_file "/assets/out" {
    vcs "git" {
      repository = "https://github.com/concourse/s3-resource"
      ref        = "master"
    }
  }
}

sample

cirocosta commented 5 years ago

oh, nevermind, I was looking at the wrong graph lol

cirocosta commented 5 years ago
cd ./concourse && \
        estaleiro llb \
                  --filename ./estaleiro.hcl \
                  | buildctl build \
                    --local context=. \
                    --local bin=/Users/cirocosta/workspace/estaleiro/bin
[+] Building 9.6s (22/22) FINISHED
 => local://context                                                                                                      0.1s
 => => transferring context: 65.12kB                                                                                     0.1s
 => CACHED docker-image://docker.io/library/ubuntu:latest@sha256:c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f7768  0.0s
 => => resolve docker.io/library/ubuntu:latest@sha256:c303f19cfe9ee92badbbbd7567bc1ca47789f79303ddcef56f77687d4744cd7a   0.0s
 => local://bin                                                                                                          0.4s
 => => transferring bin: 27.92MB                                                                                         0.4s
 => CACHED mkfile /meta.yml                                                                                              0.0s
 => [builder 1/7] FROM docker.io/concourse/golang-builder@sha256:7abd25784521c808b391501ef60e58257a15a7d3f0986d63f6d473  0.0s
 => => resolve docker.io/concourse/golang-builder@sha256:7abd25784521c808b391501ef60e58257a15a7d3f0986d63f6d47341a420d1  0.0s
 => CACHED copy /s3-resource/* /                                                                                         0.0s
 => CACHED [builder 2/7] COPY . /go/src/github.com/concourse/s3-resource                                                 0.0s
 => CACHED [builder 3/7] RUN go build -o /assets/in github.com/concourse/s3-resource/cmd/in                              0.0s
 => CACHED [builder 4/7] RUN go build -o /assets/out github.com/concourse/s3-resource/cmd/out                            0.0s
 => CACHED [builder 5/7] RUN go build -o /assets/check github.com/concourse/s3-resource/cmd/check                        0.0s
 => CACHED [builder 6/7] WORKDIR /go/src/github.com/concourse/s3-resource                                                0.0s
 => CACHED [builder 7/7] RUN set -e; for pkg in $(go list ./...); do   go test -o "/tests/$(basename $pkg).test" -c $pk  0.0s
 => /usr/local/bin/estaleiro collect --input=/var/lib/dpkg/status --output=/bom/initial-packages.yml                     0.5s
 => /usr/local/bin/estaleiro base --output=/bom/base.yml                                                                 0.5s
 => /usr/local/bin/estaleiro apt --output=/bom/final-packages.yml tzdata ca-certificates unzip zip                       7.2s
 => copy /assets/check /opt/resource/check                                                                               0.1s
 => mkfile /tarballs.yml                                                                                                 0.1s
 => mkfile /steps.yml                                                                                                    0.1s
 => copy /assets/in /opt/resource/in                                                                                     0.1s
 => /usr/local/bin/estaleiro merge --directory=. --output=/merged.yml                                                    0.6s
 => copy /assets/out /opt/resource/out                                                                                   0.1s
 => copy /merged.yml /bom                                                                                                0.1s