Loading .editorconfig 0 → 100644 +11 −0 Original line number Diff line number Diff line root = true [*] charset = utf-8 end_of_line = lf insert_final_newline = true indent_style = tab [*.{yml,yaml}] indent_style = space indent_size = 2 .gitlab-ci.yml 0 → 100644 +58 −0 Original line number Diff line number Diff line stages: - build - deploy # Prevent duplicate pipelines from merge requests workflow: rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never - when: always .build: stage: build image: docker.kodo.org.uk/ci-images/buildkit/buildctl:latest tags: [buildkit] script: - buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=. --opt target=$TARGET --output=type=image,name=$CI_REGISTRY_IMAGE/$TARGET:build-$CI_PIPELINE_IID,push=true ${REVISION:+--opt build-arg:REVISION=$REVISION} ${VERSION:+--opt build-arg:VERSION=$VERSION} Build "buildkitd": extends: [.build] variables: TARGET: buildkitd rules: - if: $CI_COMMIT_TAG =~ /^v[0-9]/ variables: VERSION: ${CI_COMMIT_TAG} - if: $CI_PIPELINE_SOURCE != "push" Build "buildctl": extends: [.build] variables: TARGET: buildctl rules: - if: $CI_COMMIT_TAG =~ /^v[0-9]/ variables: REVISION: refs/tags/${CI_COMMIT_TAG} - if: $CI_PIPELINE_SOURCE != "push" Deploy Images: stage: deploy image: docker.kodo.org.uk/ci-images/docker-reg:latest rules: - if: $CI_COMMIT_TAG =~ /^v[0-9]/ script: - docker-reg $CI_REGISTRY_IMAGE/buildkitd:build-$CI_PIPELINE_IID retag ${CI_COMMIT_TAG#v} - docker-reg $CI_REGISTRY_IMAGE/buildctl:build-$CI_PIPELINE_IID retag ${CI_COMMIT_TAG#v} - docker-reg $CI_REGISTRY_IMAGE/buildkitd:build-$CI_PIPELINE_IID retag latest - docker-reg $CI_REGISTRY_IMAGE/buildctl:build-$CI_PIPELINE_IID retag latest .gitlint 0 → 100644 +7 −0 Original line number Diff line number Diff line [general] ignore=body-trailing-whitespace,body-is-missing [author-valid-email] regex=.*@[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](\.[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9])+ # vim:ft=cfg Dockerfile 0 → 100644 +39 −0 Original line number Diff line number Diff line # syntax=docker/dockerfile-upstream:1-labs ARG VERSION FROM --platform=$BUILDPLATFORM golang:1.17-alpine as go # Get source code WORKDIR /src ENV PKG=github.com/moby/buildkit ARG REVISION=refs/heads/master RUN <<-END wget -O- https://$PKG/archive/$REVISION.tar.gz | gunzip -c | tar -xf- --strip-components=1 END # Build 'buildctl' binary ARG TARGETOS ARG TARGETARCH RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o buildctl ./cmd/buildctl FROM alpine as buildctl ENV DOCKER_CONFIG=/etc/docker RUN mkdir -p $DOCKER_CONFIG COPY --from=go /src/buildctl /bin/ COPY entrypoint.buildctl.bash /bin/entrypoint ENTRYPOINT ["/bin/entrypoint"] FROM moby/buildkit:${VERSION:+$VERSION-}rootless as buildkitd USER 0 RUN mkdir --mode 0775 /run/buildkit && chgrp 1000 /run/buildkit COPY entrypoint.buildkitd.sh /bin/entrypoint USER 1000 VOLUME /run/buildkit ENTRYPOINT ["/bin/entrypoint"] entrypoint.buildctl.bash 0 → 100755 +21 −0 Original line number Diff line number Diff line #!/bin/sh set -eu case ${1-help} in -*|du|prune|build|b|debug|help|h) set /bin/buildctl "$@" ;; esac if [ -n "${CI_REGISTRY-}" ]; then tee >$DOCKER_CONFIG/config.json <<-END_JSON { "auths": { "$CI_REGISTRY": { "username": "$CI_REGISTRY_USER", "password": "$CI_REGISTRY_PASSWORD" } } } END_JSON fi exec "$@" Loading
.editorconfig 0 → 100644 +11 −0 Original line number Diff line number Diff line root = true [*] charset = utf-8 end_of_line = lf insert_final_newline = true indent_style = tab [*.{yml,yaml}] indent_style = space indent_size = 2
.gitlab-ci.yml 0 → 100644 +58 −0 Original line number Diff line number Diff line stages: - build - deploy # Prevent duplicate pipelines from merge requests workflow: rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS when: never - when: always .build: stage: build image: docker.kodo.org.uk/ci-images/buildkit/buildctl:latest tags: [buildkit] script: - buildctl build --frontend=dockerfile.v0 --local context=. --local dockerfile=. --opt target=$TARGET --output=type=image,name=$CI_REGISTRY_IMAGE/$TARGET:build-$CI_PIPELINE_IID,push=true ${REVISION:+--opt build-arg:REVISION=$REVISION} ${VERSION:+--opt build-arg:VERSION=$VERSION} Build "buildkitd": extends: [.build] variables: TARGET: buildkitd rules: - if: $CI_COMMIT_TAG =~ /^v[0-9]/ variables: VERSION: ${CI_COMMIT_TAG} - if: $CI_PIPELINE_SOURCE != "push" Build "buildctl": extends: [.build] variables: TARGET: buildctl rules: - if: $CI_COMMIT_TAG =~ /^v[0-9]/ variables: REVISION: refs/tags/${CI_COMMIT_TAG} - if: $CI_PIPELINE_SOURCE != "push" Deploy Images: stage: deploy image: docker.kodo.org.uk/ci-images/docker-reg:latest rules: - if: $CI_COMMIT_TAG =~ /^v[0-9]/ script: - docker-reg $CI_REGISTRY_IMAGE/buildkitd:build-$CI_PIPELINE_IID retag ${CI_COMMIT_TAG#v} - docker-reg $CI_REGISTRY_IMAGE/buildctl:build-$CI_PIPELINE_IID retag ${CI_COMMIT_TAG#v} - docker-reg $CI_REGISTRY_IMAGE/buildkitd:build-$CI_PIPELINE_IID retag latest - docker-reg $CI_REGISTRY_IMAGE/buildctl:build-$CI_PIPELINE_IID retag latest
.gitlint 0 → 100644 +7 −0 Original line number Diff line number Diff line [general] ignore=body-trailing-whitespace,body-is-missing [author-valid-email] regex=.*@[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](\.[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9])+ # vim:ft=cfg
Dockerfile 0 → 100644 +39 −0 Original line number Diff line number Diff line # syntax=docker/dockerfile-upstream:1-labs ARG VERSION FROM --platform=$BUILDPLATFORM golang:1.17-alpine as go # Get source code WORKDIR /src ENV PKG=github.com/moby/buildkit ARG REVISION=refs/heads/master RUN <<-END wget -O- https://$PKG/archive/$REVISION.tar.gz | gunzip -c | tar -xf- --strip-components=1 END # Build 'buildctl' binary ARG TARGETOS ARG TARGETARCH RUN GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o buildctl ./cmd/buildctl FROM alpine as buildctl ENV DOCKER_CONFIG=/etc/docker RUN mkdir -p $DOCKER_CONFIG COPY --from=go /src/buildctl /bin/ COPY entrypoint.buildctl.bash /bin/entrypoint ENTRYPOINT ["/bin/entrypoint"] FROM moby/buildkit:${VERSION:+$VERSION-}rootless as buildkitd USER 0 RUN mkdir --mode 0775 /run/buildkit && chgrp 1000 /run/buildkit COPY entrypoint.buildkitd.sh /bin/entrypoint USER 1000 VOLUME /run/buildkit ENTRYPOINT ["/bin/entrypoint"]
entrypoint.buildctl.bash 0 → 100755 +21 −0 Original line number Diff line number Diff line #!/bin/sh set -eu case ${1-help} in -*|du|prune|build|b|debug|help|h) set /bin/buildctl "$@" ;; esac if [ -n "${CI_REGISTRY-}" ]; then tee >$DOCKER_CONFIG/config.json <<-END_JSON { "auths": { "$CI_REGISTRY": { "username": "$CI_REGISTRY_USER", "password": "$CI_REGISTRY_PASSWORD" } } } END_JSON fi exec "$@"