From 39c4fcf4aed2047c8326e2f2e0f5d04bb04ffbcb Mon Sep 17 00:00:00 2001 From: Devin Smith Date: Tue, 14 Dec 2021 10:36:19 -0800 Subject: [PATCH 1/2] Move docker LABELs into Dockerfiles --- .github/workflows/build-ci.yml | 72 +++++++------------ docker/server-slim/src/main/docker/Dockerfile | 10 +++ docker/server/src/main/common/Dockerfile | 12 +++- envoy/Dockerfile | 9 +++ envoy/build.gradle | 1 + grpc-proxy/Dockerfile | 9 +++ grpc-proxy/build.gradle | 1 + web/client-ide/client-ide.gradle | 2 +- web/client-ide/docker/Dockerfile | 10 ++- 9 files changed, 75 insertions(+), 51 deletions(-) diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index a951f36ece7..8090c8a3251 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -59,11 +59,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.8') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven Core - org.opencontainers.image.description=Deephaven Core - org.opencontainers.image.licenses=Deephaven Community License Agreement 1.0 - name: Docker meta server nltk id: docker_meta_server_nltk @@ -78,11 +73,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.7') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven Core - Natural Language Toolkit - org.opencontainers.image.description=Deephaven Core - Natural Language Toolkit extension - org.opencontainers.image.licenses=Deephaven Community License Agreement 1.0 - name: Docker meta server pytorch id: docker_meta_server_pytorch @@ -97,11 +87,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.7') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven Core - PyTorch - org.opencontainers.image.description=Deephaven Core - PyTorch extension - org.opencontainers.image.licenses=Deephaven Community License Agreement 1.0 - name: Docker meta server sklearn id: docker_meta_server_sklearn @@ -116,11 +101,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.7') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven Core - scikit-learn - org.opencontainers.image.description=Deephaven Core - scikit-learn extension - org.opencontainers.image.licenses=Deephaven Community License Agreement 1.0 - name: Docker meta server tensorflow id: docker_meta_server_tensorflow @@ -135,11 +115,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.7') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven Core - TensorFlow - org.opencontainers.image.description=Deephaven Core - TensorFlow extension - org.opencontainers.image.licenses=Deephaven Community License Agreement 1.0 - name: Docker meta server slim id: docker_meta_server_slim @@ -154,11 +129,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.8') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven Core - slim - org.opencontainers.image.description=Deephaven Core - slim - org.opencontainers.image.licenses=Deephaven Community License Agreement 1.0 - name: Set up Docker Buildx id: buildx @@ -325,11 +295,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.8') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven gRPC Web Proxy - org.opencontainers.image.description=Deephaven gRPC web proxy, for the improbable-eng grpc to grpc-web/websocket proxy - org.opencontainers.image.licenses=Apache-2.0 - name: Set up Docker Buildx id: buildx @@ -350,12 +315,19 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: build-grpc-proxy - arguments: --scan grpc-proxy:prepareDocker + arguments: --scan outputVersion grpc-proxy:prepareDocker gradle-version: wrapper + - name: Get Deephaven Version + id: deephaven_version + run: | + echo "::set-output name=deephaven_version::$(cat build/version)" + - name: Docker build uses: docker/build-push-action@v2 with: + build-args: | + DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} @@ -409,11 +381,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.8') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven Envoy - org.opencontainers.image.description=Deephaven envoy proxy - org.opencontainers.image.licenses=Apache-2.0 - name: Set up Docker Buildx id: buildx @@ -434,12 +401,19 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: build-envoy - arguments: --scan envoy:prepareDocker + arguments: --scan outputVersion envoy:prepareDocker gradle-version: wrapper + - name: Get Deephaven Version + id: deephaven_version + run: | + echo "::set-output name=deephaven_version::$(cat build/version)" + - name: Build uses: docker/build-push-action@v2 with: + build-args: | + DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} @@ -471,11 +445,6 @@ jobs: type=raw,priority=950,enable=${{ startsWith(github.ref, 'refs/heads/release/v') }},value=${{ steps.semver.outputs.semver }} type=raw,enable=${{ startsWith(github.ref, 'refs/heads/release/v0.8') }},value=latest type=ref,event=branch - labels: | - org.opencontainers.image.vendor=Deephaven Data Labs - org.opencontainers.image.title=Deephaven Web - org.opencontainers.image.description=Deephaven web - org.opencontainers.image.licenses=Deephaven Community License Agreement 1.0 - name: Setup JDK 11 id: setup-java-11 @@ -522,12 +491,19 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: build-web - arguments: --scan createCraneTagScript web-client-ide:prepareDocker + arguments: --scan outputVersion createCraneTagScript web-client-ide:prepareDocker gradle-version: wrapper + - name: Get Deephaven Version + id: deephaven_version + run: | + echo "::set-output name=deephaven_version::$(cat build/version)" + - name: Docker build uses: docker/build-push-action@v2 with: + build-args: | + DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta.outputs.tags }} labels: ${{ steps.docker_meta.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} diff --git a/docker/server-slim/src/main/docker/Dockerfile b/docker/server-slim/src/main/docker/Dockerfile index 56085901813..057fb21089e 100644 --- a/docker/server-slim/src/main/docker/Dockerfile +++ b/docker/server-slim/src/main/docker/Dockerfile @@ -31,3 +31,13 @@ VOLUME /cache # available. HEALTHCHECK --interval=3s --retries=3 --timeout=11s CMD /bin/grpc_health_probe -addr=localhost:8080 -connect-timeout=10s || exit 1 ENTRYPOINT [ "/opt/deephaven/server/bin/start", "image-bootstrap.properties" ] + +ARG DEEPHAVEN_VERSION +LABEL \ + io.deephaven.image.type="server" \ + io.deephaven.server.flavor="server-slim" \ + io.deephaven.version="${DEEPHAVEN_VERSION}" \ + org.opencontainers.image.vendor="Deephaven Data Labs" \ + org.opencontainers.image.title="Deephaven Server - server-slim" \ + org.opencontainers.image.description="Deephaven Community Core Server - server-slim" \ + org.opencontainers.image.licenses="Deephaven Community License Agreement 1.0" \ No newline at end of file diff --git a/docker/server/src/main/common/Dockerfile b/docker/server/src/main/common/Dockerfile index db1a50e4c04..0ee0d098323 100644 --- a/docker/server/src/main/common/Dockerfile +++ b/docker/server/src/main/common/Dockerfile @@ -42,4 +42,14 @@ COPY --from=install / / VOLUME /data VOLUME /cache HEALTHCHECK --interval=3s --retries=3 --timeout=11s CMD /bin/grpc_health_probe -addr=localhost:8080 -connect-timeout=10s || exit 1 -ENTRYPOINT [ "/opt/deephaven/server/bin/start", "image-bootstrap.properties" ] \ No newline at end of file +ENTRYPOINT [ "/opt/deephaven/server/bin/start", "image-bootstrap.properties" ] +ARG DEEPHAVEN_VERSION +ARG SERVER +LABEL \ + io.deephaven.image.type="server" \ + io.deephaven.server.flavor="${SERVER}" \ + io.deephaven.version="${DEEPHAVEN_VERSION}" \ + org.opencontainers.image.vendor="Deephaven Data Labs" \ + org.opencontainers.image.title="Deephaven Server - ${SERVER}" \ + org.opencontainers.image.description="Deephaven Community Core Server - ${SERVER}" \ + org.opencontainers.image.licenses="Deephaven Community License Agreement 1.0" \ No newline at end of file diff --git a/envoy/Dockerfile b/envoy/Dockerfile index 9d320b9739b..8954a8f2a9e 100644 --- a/envoy/Dockerfile +++ b/envoy/Dockerfile @@ -4,3 +4,12 @@ COPY contents/ / RUN set -eux; \ mv /envoy.yaml /etc/envoy/envoy.yaml; \ chmod go+r /etc/envoy/envoy.yaml + +ARG DEEPHAVEN_VERSION +LABEL \ + io.deephaven.image.type="envoy" \ + io.deephaven.version="${DEEPHAVEN_VERSION}" \ + org.opencontainers.image.vendor="Deephaven Data Labs" \ + org.opencontainers.image.title="Deephaven Envoy" \ + org.opencontainers.image.description="Deephaven envoy proxy" \ + org.opencontainers.image.licenses="Apache-2.0" \ No newline at end of file diff --git a/envoy/build.gradle b/envoy/build.gradle index 621ab51a63f..5193911ff36 100644 --- a/envoy/build.gradle +++ b/envoy/build.gradle @@ -26,6 +26,7 @@ def prepareDocker = project.tasks.register('prepareDocker', Sync) { def buildDocker = Docker.registerDockerImage(project, 'buildDocker') { inputs.files prepareDocker.get().outputs.files inputs.files Docker.registryFiles(project, 'envoyproxy') + buildArgs.put('DEEPHAVEN_VERSION', project.version) images.add('deephaven/envoy:local-build') } diff --git a/grpc-proxy/Dockerfile b/grpc-proxy/Dockerfile index a7defb0a0b3..456837a996f 100644 --- a/grpc-proxy/Dockerfile +++ b/grpc-proxy/Dockerfile @@ -17,3 +17,12 @@ RUN set -eux; \ EXPOSE 8080 8443 ENTRYPOINT ["/sbin/tini", "--", "/docker-entrypoint.sh"] + +ARG DEEPHAVEN_VERSION +LABEL \ + io.deephaven.image.type="grpc-proxy" \ + io.deephaven.version="${DEEPHAVEN_VERSION}" \ + org.opencontainers.image.vendor="Deephaven Data Labs" \ + org.opencontainers.image.title="Deephaven gRPC Web Proxy" \ + org.opencontainers.image.description="Deephaven gRPC web proxy, for the improbable-eng grpc to grpc-web/websocket proxy" \ + org.opencontainers.image.licenses="Apache-2.0" diff --git a/grpc-proxy/build.gradle b/grpc-proxy/build.gradle index 723b68f75c6..83c3d0751e2 100644 --- a/grpc-proxy/build.gradle +++ b/grpc-proxy/build.gradle @@ -26,6 +26,7 @@ def prepareDocker = project.tasks.register('prepareDocker', Sync) { def buildDocker = Docker.registerDockerImage(project, 'buildDocker') { inputs.files prepareDocker.get().outputs.files inputs.files Docker.registryFiles(project, 'alpine') + buildArgs.put('DEEPHAVEN_VERSION', project.version) images.add('deephaven/grpc-proxy:local-build') } diff --git a/web/client-ide/client-ide.gradle b/web/client-ide/client-ide.gradle index c6c82646546..d1c9a29a9b1 100644 --- a/web/client-ide/client-ide.gradle +++ b/web/client-ide/client-ide.gradle @@ -52,6 +52,6 @@ def prepareDocker = project.tasks.register('prepareDocker', Sync) { Docker.registerDockerImage(project, 'buildDocker') { inputs.files([prepareDocker.get(), dhide, jsOut].each { t -> t.outputs.files }) inputs.files Docker.registryFiles(project, 'nginx-base') - //buildArgs.put('DEEPHAVEN_VERSION', "${project.version}") + buildArgs.put('DEEPHAVEN_VERSION', project.version) images.add('deephaven/web:local-build') } diff --git a/web/client-ide/docker/Dockerfile b/web/client-ide/docker/Dockerfile index 14459fd4564..4afcfbd8f85 100644 --- a/web/client-ide/docker/Dockerfile +++ b/web/client-ide/docker/Dockerfile @@ -12,4 +12,12 @@ COPY default.conf /etc/nginx/conf.d/ COPY nginx.conf /etc/nginx/ COPY 99-init-notebooks.sh /docker-entrypoint.d -VOLUME /tmp \ No newline at end of file +VOLUME /tmp +ARG DEEPHAVEN_VERSION +LABEL \ + io.deephaven.image.type="web" \ + io.deephaven.version="${DEEPHAVEN_VERSION}" \ + org.opencontainers.image.vendor="Deephaven Data Labs" \ + org.opencontainers.image.title="Deephaven Web" \ + org.opencontainers.image.description="Deephaven web" \ + org.opencontainers.image.licenses="Deephaven Community License Agreement 1.0" \ No newline at end of file From b8bb872d93a51f034aee56a79500c6e28378395c Mon Sep 17 00:00:00 2001 From: Devin Smith Date: Wed, 15 Dec 2021 08:48:53 -0800 Subject: [PATCH 2/2] Don't set labels in CI --- .github/workflows/build-ci.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index 8090c8a3251..f8e76b11d07 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -168,7 +168,6 @@ jobs: SERVER=server DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server.outputs.tags }} - labels: ${{ steps.docker_meta_server.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./docker/server/build/context/ push: ${{ github.event_name != 'pull_request' }} @@ -181,7 +180,6 @@ jobs: SERVER=server-nltk DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_nltk.outputs.tags }} - labels: ${{ steps.docker_meta_server_nltk.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./docker/server/build/context/ push: ${{ github.event_name != 'pull_request' }} @@ -194,7 +192,6 @@ jobs: SERVER=server-pytorch DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_pytorch.outputs.tags }} - labels: ${{ steps.docker_meta_server_pytorch.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./docker/server/build/context/ push: ${{ github.event_name != 'pull_request' }} @@ -207,7 +204,6 @@ jobs: SERVER=server-sklearn DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_sklearn.outputs.tags }} - labels: ${{ steps.docker_meta_server_sklearn.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./docker/server/build/context/ push: ${{ github.event_name != 'pull_request' }} @@ -220,7 +216,6 @@ jobs: SERVER=server-tensorflow DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_tensorflow.outputs.tags }} - labels: ${{ steps.docker_meta_server_tensorflow.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./docker/server/build/context/ push: ${{ github.event_name != 'pull_request' }} @@ -232,7 +227,6 @@ jobs: build-args: | DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_slim.outputs.tags }} - labels: ${{ steps.docker_meta_server_slim.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./docker/server-slim/build/context/ push: ${{ github.event_name != 'pull_request' }} @@ -329,7 +323,6 @@ jobs: build-args: | DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./grpc-proxy/build/docker/ push: ${{ github.event_name != 'pull_request' }} @@ -415,7 +408,6 @@ jobs: build-args: | DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./envoy/build/docker/ push: ${{ github.event_name != 'pull_request' }} @@ -505,7 +497,6 @@ jobs: build-args: | DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} builder: ${{ steps.buildx.outputs.name }} context: ./web/client-ide/build/docker/ push: ${{ github.event_name != 'pull_request' }}