diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index e0d08695a38..d2dffbe6b4e 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 @@ -198,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' }} @@ -211,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' }} @@ -224,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' }} @@ -237,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' }} @@ -250,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' }} @@ -262,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' }} @@ -325,11 +289,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,14 +309,20 @@ 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 }} context: ./grpc-proxy/build/docker/ push: ${{ github.event_name != 'pull_request' }} @@ -409,11 +374,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,14 +394,20 @@ 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 }} context: ./envoy/build/docker/ push: ${{ github.event_name != 'pull_request' }} @@ -471,11 +437,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,14 +483,20 @@ jobs: uses: burrunan/gradle-cache-action@v1 with: job-id: build-web - arguments: --scan createCraneTagScript docker-web:prepareDocker + arguments: --scan outputVersion createCraneTagScript docker-web: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 }} context: ./docker/web/build/docker/ push: ${{ github.event_name != 'pull_request' }} 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/docker/Dockerfile b/docker/server/src/main/docker/Dockerfile index a2d3fc0db52..359f5644f20 100644 --- a/docker/server/src/main/docker/Dockerfile +++ b/docker/server/src/main/docker/Dockerfile @@ -48,4 +48,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/docker/web/build.gradle b/docker/web/build.gradle index afb8d780d14..c7532fd517a 100644 --- a/docker/web/build.gradle +++ b/docker/web/build.gradle @@ -38,6 +38,7 @@ Docker.registerDockerImage(project, 'buildDocker') { inputDir.set syncDir inputs.files Docker.registryFiles(project, 'nginx-base') inputs.files prepareDocker.get().outputs.files + buildArgs.put('DEEPHAVEN_VERSION', project.version) images.add('deephaven/web:local-build') } diff --git a/docker/web/src/main/docker/Dockerfile b/docker/web/src/main/docker/Dockerfile index a8da545ddd3..2b8a51d12fe 100644 --- a/docker/web/src/main/docker/Dockerfile +++ b/docker/web/src/main/docker/Dockerfile @@ -8,3 +8,11 @@ COPY nginx/99-init-notebooks.sh /docker-entrypoint.d COPY static/ /usr/share/nginx/html 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 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/build.gradle b/grpc-proxy/build.gradle index c5651fc03c1..093946d8f3e 100644 --- a/grpc-proxy/build.gradle +++ b/grpc-proxy/build.gradle @@ -33,6 +33,7 @@ def buildDocker = Docker.registerDockerImage(project, 'buildDocker') { inputDir.set context 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/grpc-proxy/src/main/docker/Dockerfile b/grpc-proxy/src/main/docker/Dockerfile index 28d39e6794a..1e696831975 100644 --- a/grpc-proxy/src/main/docker/Dockerfile +++ b/grpc-proxy/src/main/docker/Dockerfile @@ -14,3 +14,12 @@ FROM deephaven/alpine:local-build COPY --from=install / / 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"