From 24ea5231618f4fb5b03703124739c64184a46af7 Mon Sep 17 00:00:00 2001 From: Devin Smith Date: Tue, 4 Oct 2022 07:28:16 -0700 Subject: [PATCH] Switch over developer prepareCompose workflow to jetty (#2941) --- .env | 2 +- .github/workflows/build-ci.yml | 26 +++---- Integrations/build.gradle | 4 +- build.gradle | 7 +- .../docker/DeephavenInDockerExtension.groovy | 2 +- debezium/demo/.env | 2 +- debezium/demo/docker-compose.yml | 28 ------- docker-compose-common.yml | 47 +----------- docker-compose.yml | 28 ------- docker/README.md | 12 +-- docker/server-jetty/build.gradle | 76 +++++++++++++++++++ docker/server-jetty/gradle.properties | 1 + .../main/configure/image-bootstrap.properties | 6 ++ .../server-jetty/src/main/docker/Dockerfile | 44 +++++++++++ .../src/main/server-jetty}/requirements.txt | 0 docker/server/build.gradle | 14 ++-- .../main/configure/image-bootstrap.properties | 1 + .../requirements.txt | 0 .../src/main/server-netty/requirements.txt | 13 ++++ .../requirements.txt | 0 .../requirements.txt | 0 .../requirements.txt | 0 .../requirements.txt | 0 redpanda-apicurio/.env | 2 +- redpanda-apicurio/docker-compose.yml | 29 ------- redpanda/.env | 2 +- redpanda/docker-compose.yml | 28 ------- settings.gradle | 3 + sphinx/sphinx.gradle | 8 +- 29 files changed, 186 insertions(+), 199 deletions(-) create mode 100644 docker/server-jetty/build.gradle create mode 100644 docker/server-jetty/gradle.properties create mode 100644 docker/server-jetty/src/main/configure/image-bootstrap.properties create mode 100644 docker/server-jetty/src/main/docker/Dockerfile rename docker/{server/src/main/server => server-jetty/src/main/server-jetty}/requirements.txt (100%) rename docker/server/src/main/{server-all-ai => server-all-ai-netty}/requirements.txt (100%) create mode 100644 docker/server/src/main/server-netty/requirements.txt rename docker/server/src/main/{server-nltk => server-nltk-netty}/requirements.txt (100%) rename docker/server/src/main/{server-pytorch => server-pytorch-netty}/requirements.txt (100%) rename docker/server/src/main/{server-sklearn => server-sklearn-netty}/requirements.txt (100%) rename docker/server/src/main/{server-tensorflow => server-tensorflow-netty}/requirements.txt (100%) diff --git a/.env b/.env index fa38c714a55..3b24bb0cad5 100644 --- a/.env +++ b/.env @@ -6,4 +6,4 @@ COMPOSE_PROJECT_NAME=core DEEPHAVEN_PORT=10000 DEEPHAVEN_CONSOLE_TYPE=python DEEPHAVEN_APPLICATION_DIR=/data/app.d -DEEPHAVEN_SERVER_IMAGE=deephaven/server:local-build +DEEPHAVEN_SERVER_IMAGE=deephaven/server-jetty:local-build diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml index ccd0f5cb40f..f1881b8f3fb 100644 --- a/.github/workflows/build-ci.yml +++ b/.github/workflows/build-ci.yml @@ -51,7 +51,7 @@ jobs: uses: docker/metadata-action@v3 with: images: | - ghcr.io/${{ github.repository_owner }}/server + ghcr.io/${{ github.repository_owner }}/server-netty flavor: | latest=false tags: | @@ -65,7 +65,7 @@ jobs: uses: docker/metadata-action@v3 with: images: | - ghcr.io/${{ github.repository_owner }}/server-nltk + ghcr.io/${{ github.repository_owner }}/server-nltk-netty flavor: | latest=false tags: | @@ -79,7 +79,7 @@ jobs: uses: docker/metadata-action@v3 with: images: | - ghcr.io/${{ github.repository_owner }}/server-pytorch + ghcr.io/${{ github.repository_owner }}/server-pytorch-netty flavor: | latest=false tags: | @@ -93,7 +93,7 @@ jobs: uses: docker/metadata-action@v3 with: images: | - ghcr.io/${{ github.repository_owner }}/server-sklearn + ghcr.io/${{ github.repository_owner }}/server-sklearn-netty flavor: | latest=false tags: | @@ -107,7 +107,7 @@ jobs: uses: docker/metadata-action@v3 with: images: | - ghcr.io/${{ github.repository_owner }}/server-tensorflow + ghcr.io/${{ github.repository_owner }}/server-tensorflow-netty flavor: | latest=false tags: | @@ -121,7 +121,7 @@ jobs: uses: docker/metadata-action@v3 with: images: | - ghcr.io/${{ github.repository_owner }}/server-all-ai + ghcr.io/${{ github.repository_owner }}/server-all-ai-netty flavor: | latest=false tags: | @@ -135,7 +135,7 @@ jobs: uses: docker/metadata-action@v3 with: images: | - ghcr.io/${{ github.repository_owner }}/server-slim + ghcr.io/${{ github.repository_owner }}/server-slim-netty flavor: | latest=false tags: | @@ -179,7 +179,7 @@ jobs: with: build-args: | BASE=deephaven/server-base:local-build - SERVER=server + SERVER=server-netty DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server.outputs.tags }} builder: ${{ steps.buildx.outputs.name }} @@ -191,7 +191,7 @@ jobs: with: build-args: | BASE=deephaven/nltk-base:local-build - SERVER=server-nltk + SERVER=server-nltk-netty DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_nltk.outputs.tags }} builder: ${{ steps.buildx.outputs.name }} @@ -203,7 +203,7 @@ jobs: with: build-args: | BASE=deephaven/pytorch-base:local-build - SERVER=server-pytorch + SERVER=server-pytorch-netty DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_pytorch.outputs.tags }} builder: ${{ steps.buildx.outputs.name }} @@ -215,7 +215,7 @@ jobs: with: build-args: | BASE=deephaven/sklearn-base:local-build - SERVER=server-sklearn + SERVER=server-sklearn-netty DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_sklearn.outputs.tags }} builder: ${{ steps.buildx.outputs.name }} @@ -227,7 +227,7 @@ jobs: with: build-args: | BASE=deephaven/tensorflow-base:local-build - SERVER=server-tensorflow + SERVER=server-tensorflow-netty DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_tensorflow.outputs.tags }} builder: ${{ steps.buildx.outputs.name }} @@ -239,7 +239,7 @@ jobs: with: build-args: | BASE=deephaven/all-ai-base:local-build - SERVER=server-all-ai + SERVER=server-all-ai-netty DEEPHAVEN_VERSION=${{ steps.deephaven_version.outputs.deephaven_version }} tags: ${{ steps.docker_meta_server_all_ai.outputs.tags }} builder: ${{ steps.buildx.outputs.name }} diff --git a/Integrations/build.gradle b/Integrations/build.gradle index 8055b8ad11b..ca41bb1c204 100644 --- a/Integrations/build.gradle +++ b/Integrations/build.gradle @@ -57,7 +57,7 @@ def runInDocker = { String name, String sourcePath, List command, Closur into 'python/configs' } } - parentContainers = [project(':docker-server').tasks.findByName('buildDocker-server')] // deephaven/server + parentContainers = [project(':docker-server').tasks.findByName('buildDocker-server-netty')] // deephaven/server-netty imageName = 'deephaven/py-integrations:local-build' @@ -65,7 +65,7 @@ def runInDocker = { String name, String sourcePath, List command, Closur dockerfile { // set up the container, env vars - things that aren't likely to change - from 'deephaven/server:local-build' + from 'deephaven/server-netty:local-build' runCommand '''set -eux; \\ pip3 install unittest-xml-reporting==3.0.4;\\ mkdir -p /out/report;\\ diff --git a/build.gradle b/build.gradle index afdfa20f8cc..708041cf6fd 100644 --- a/build.gradle +++ b/build.gradle @@ -59,11 +59,7 @@ tasks.register('nightly') { tasks.register('prepareCompose') { it.group 'Deephaven lifecycle' it.description 'A lifecycle task that prepares prerequisites for local docker-compose builds' - it.dependsOn project(':docker-server-slim').tasks.findByName('buildDocker-server-slim'), - project(':docker-server').tasks.findByName('buildDocker-server'), - project(':docker-web').tasks.findByName('buildDocker'), - project(':envoy').tasks.findByName('buildDocker'), - project(':grpc-proxy').tasks.findByName('buildDocker-grpc-proxy') + it.dependsOn project(':docker-server-jetty').tasks.findByName('buildDocker-server-jetty') } tasks.register('smoke') { @@ -77,6 +73,7 @@ tasks.register('smoke') { it.dependsOn project(':server').tasks.findByName(LifecycleBasePlugin.CHECK_TASK_NAME) it.dependsOn project(':docker-server-slim').tasks.findByName('prepareDocker') it.dependsOn project(':docker-server').tasks.findByName('prepareDocker') + it.dependsOn project(':docker-server-jetty').tasks.findByName('prepareDocker') it.dependsOn project(':web').tasks.findByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME) it.dependsOn project(':Generators').tasks.findByName(LifecycleBasePlugin.CHECK_TASK_NAME) } diff --git a/buildSrc/src/main/groovy/io/deephaven/tools/docker/DeephavenInDockerExtension.groovy b/buildSrc/src/main/groovy/io/deephaven/tools/docker/DeephavenInDockerExtension.groovy index c43e9884e6a..c8b9084d10d 100644 --- a/buildSrc/src/main/groovy/io/deephaven/tools/docker/DeephavenInDockerExtension.groovy +++ b/buildSrc/src/main/groovy/io/deephaven/tools/docker/DeephavenInDockerExtension.groovy @@ -45,7 +45,7 @@ public abstract class DeephavenInDockerExtension { // irritating configuration order of operations to work out here, so just leaving // these as constants until we decide they aren't any more deephavenServerProject = ':docker-server' - serverTask = 'buildDocker-server' + serverTask = 'buildDocker-server-netty' def serverProject = project.evaluationDependsOn(deephavenServerProject) def createDeephavenGrpcApiNetwork = project.tasks.register('createDeephavenGrpcApiNetwork', DockerCreateNetwork) { task -> diff --git a/debezium/demo/.env b/debezium/demo/.env index 3d48847613c..c915173dbc4 100644 --- a/debezium/demo/.env +++ b/debezium/demo/.env @@ -2,7 +2,7 @@ COMPOSE_PROJECT_NAME=core-debezium-demo DEEPHAVEN_PORT=10000 DEEPHAVEN_CONSOLE_TYPE=python DEEPHAVEN_APPLICATION_DIR=/data/app.d -DEEPHAVEN_SERVER_IMAGE=deephaven/server:local-build +DEEPHAVEN_SERVER_IMAGE=deephaven/server-jetty:local-build DEBEZIUM_VERSION=1.4 REDPANDA_VERSION=v21.9.5 REDPANDA_MEMORY=1G diff --git a/debezium/demo/docker-compose.yml b/debezium/demo/docker-compose.yml index e1abe7df828..569ad577f75 100644 --- a/debezium/demo/docker-compose.yml +++ b/debezium/demo/docker-compose.yml @@ -12,34 +12,6 @@ services: - ../scripts:/scripts - ./logs:/logs - web: - extends: - file: ../../docker-compose-common.yml - service: web - - # Should only be used for non-production deployments, see grpc-proxy/README.md for more info - grpc-proxy: - extends: - file: ../../docker-compose-common.yml - service: grpc-proxy - depends_on: - server: - condition: service_healthy - - envoy: - # A reverse proxy configured for no SSL on localhost. It fronts the requests - # for the static content and the websocket proxy. - extends: - file: ../../docker-compose-common.yml - service: envoy - depends_on: - server: - condition: service_healthy - grpc-proxy: - condition: service_started - web: - condition: service_started - redpanda: extends: file: ../docker-compose-debezium-common.yml diff --git a/docker-compose-common.yml b/docker-compose-common.yml index 1f57e27d466..e072231f451 100644 --- a/docker-compose-common.yml +++ b/docker-compose-common.yml @@ -14,7 +14,7 @@ services: # with max memory. # # To turn on debug logging, add: -Dlogback.configurationFile=logback-debug.xml - - JAVA_TOOL_OPTIONS=-Xmx4g -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} -Dstorage.path=/data + - JAVA_TOOL_OPTIONS=-Xmx4g -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} # # For remote debugging switch the line above for the one below (and also change the ports below) # - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -Xmx4g -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} @@ -22,13 +22,11 @@ services: # For jprofiler sessions (if you tweaked the jprofiler version in jprofiler-server/Dockerfile you need to tweak path) # - JAVA_TOOL_OPTIONS=-agentpath:/opt/jprofiler13.0/bin/linux-x64/libjprofilerti.so=port=8849,nowait -Xmx4g -Ddeephaven.console.type=${DEEPHAVEN_CONSOLE_TYPE} -Ddeephaven.application.dir=${DEEPHAVEN_APPLICATION_DIR} - expose: - - '8080' + ports: + - '10000:10000' # For remote debugging (change if using different port) -# ports: # - '5005:5005' # For jprofiler (change if using different port) -# ports: # - '8849:8849' # Note: using old-style volume mounts, so that the directories get created if they don't exist @@ -50,42 +48,3 @@ services: # $ docker exec core_server_1 tc qdisc add dev eth0 root netem delay 10ms cap_add: - SYS_PTRACE - - web: - image: deephaven/web:local-build - expose: - - "8080" - volumes: - - ./data:/data - deploy: - resources: - limits: - cpus: '1' - memory: 256M - - # Should only be used for non-production deployments, see grpc-proxy/README.md for more info - grpc-proxy: - image: deephaven/grpc-proxy:local-build - environment: - - BACKEND_ADDR=server:8080 - expose: - - '8080' -# - '8443' #unused - deploy: - resources: - limits: - cpus: '1' - memory: 256M - - envoy: - # A reverse proxy configured for no SSL on localhost. It fronts the requests - # for the static content and the websocket proxy. - image: deephaven/envoy:local-build - ports: - - "${DEEPHAVEN_PORT}:10000" -# - '9090:9090' #envoy admin - deploy: - resources: - limits: - cpus: '1' - memory: 256M diff --git a/docker-compose.yml b/docker-compose.yml index bbd721eac58..ff3b4f6ab6e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,31 +16,3 @@ services: extends: file: docker-compose-common.yml service: server - - web: - extends: - file: docker-compose-common.yml - service: web - - # Should only be used for non-production deployments, see grpc-proxy/README.md for more info - grpc-proxy: - extends: - file: docker-compose-common.yml - service: grpc-proxy - depends_on: - server: - condition: service_healthy - - envoy: - # A reverse proxy configured for no SSL on localhost. It fronts the requests - # for the static content and the websocket proxy. - extends: - file: docker-compose-common.yml - service: envoy - depends_on: - server: - condition: service_healthy - grpc-proxy: - condition: service_started - web: - condition: service_started diff --git a/docker/README.md b/docker/README.md index 055ba0fa2f0..da848129c23 100644 --- a/docker/README.md +++ b/docker/README.md @@ -2,16 +2,16 @@ ## docker-server-slim -The `docker-server-slim` project produces the image `deephaven/server-slim:local-build`. +The `docker-server-slim` project produces the image `deephaven/server-slim-netty:local-build`. ## docker-server The `docker-server` project produces the images: -* `deephaven/server:local-build` -* `deephaven/server-nltk:local-build` -* `deephaven/server-pytorch:local-build` -* `deephaven/server-sklearn:local-build` -* `deephaven/server-tensorflow:local-build` +* `deephaven/server-netty:local-build` +* `deephaven/server-nltk-netty:local-build` +* `deephaven/server-pytorch-netty:local-build` +* `deephaven/server-sklearn-netty:local-build` +* `deephaven/server-tensorflow-netty:local-build` When the base images for `docker-server` are updated, the requirements.txt files may need to be updated. This can currently be done manually via: diff --git a/docker/server-jetty/build.gradle b/docker/server-jetty/build.gradle new file mode 100644 index 00000000000..a66fe027c33 --- /dev/null +++ b/docker/server-jetty/build.gradle @@ -0,0 +1,76 @@ +import io.deephaven.tools.docker.Architecture +import io.deephaven.tools.License + +plugins { + id 'com.bmuschko.docker-remote-api' + id 'io.deephaven.project.register' +} + +def targetArch = Architecture.targetArchitecture(project) + +def baseMapAmd64 = [ + 'server-base': 'server-jetty', +] + +// Only the server image is supported on arm64 +// TODO(deephaven-core#1702): Support arm64 builds for applicable extended images +def baseMapArm64 = baseMapAmd64.findAll { key, value -> value == 'server-jetty' } + +def baseMap = targetArch == Architecture.AMD64 ? baseMapAmd64 : baseMapArm64 + +baseMap.keySet().each {base -> + evaluationDependsOn Docker.registryProject(base) +} + +configurations { + serverApplicationDist + pythonWheel +} + +dependencies { + serverApplicationDist project(path: ':server-jetty-app', configuration: 'applicationDist') + + pythonWheel project(':py-server') +} + +def dockerLicenses = License.createFrom(project).syncDockerLicense().get() + +def context= project.layout.buildDirectory.dir('context') + +def prepareDocker = project.tasks.register('prepareDocker', Sync) { + + from 'src/main/docker' + baseMap.values().each { server -> + from("src/main/${server}") { + into server + } + } + from ('src/main/configure') { + into 'configure' + } + + from(configurations.pythonWheel) { + into 'wheels' + } + + from(configurations.serverApplicationDist) { + into 'serverApplicationDist' + } + from(dockerLicenses.outputs) { + into 'licenses' + } + into context +} + +def buildDockerClosure = { String base, String server -> + Docker.registerDockerTwoPhaseImage(project, server, 'install') { + dependsOn prepareDocker + inputDir.set context + inputs.files Docker.registryFiles(project, base) + buildArgs.put('BASE', "deephaven/${base}:local-build") + buildArgs.put('SERVER', server) + buildArgs.put('DEEPHAVEN_VERSION', project.version) + } +} + +assemble.dependsOn baseMap.collect { base, server -> buildDockerClosure(base, server) } diff --git a/docker/server-jetty/gradle.properties b/docker/server-jetty/gradle.properties new file mode 100644 index 00000000000..8f42cc0940f --- /dev/null +++ b/docker/server-jetty/gradle.properties @@ -0,0 +1 @@ +io.deephaven.project.ProjectType=BASIC diff --git a/docker/server-jetty/src/main/configure/image-bootstrap.properties b/docker/server-jetty/src/main/configure/image-bootstrap.properties new file mode 100644 index 00000000000..490d83f2e75 --- /dev/null +++ b/docker/server-jetty/src/main/configure/image-bootstrap.properties @@ -0,0 +1,6 @@ +Configuration.rootFile=dh-defaults.prop +workspace=. +devroot=. + +deephaven.cache.dir=/cache +storage.path=/data diff --git a/docker/server-jetty/src/main/docker/Dockerfile b/docker/server-jetty/src/main/docker/Dockerfile new file mode 100644 index 00000000000..d4a1213f97c --- /dev/null +++ b/docker/server-jetty/src/main/docker/Dockerfile @@ -0,0 +1,44 @@ +ARG BASE +FROM $BASE as install + +COPY licenses/ / + +# Note: all of the pip installs have the --no-index flag, with the expectation that all external dependencies are +# already satisfied via the base image. If that is not the case, we want the install to error out, and we'll need to +# update the base image with the extra requirements before proceeding here. + +ARG SERVER +COPY $SERVER/requirements.txt requirements.txt +RUN set -eux; \ + python -m pip install -q --no-index --no-cache-dir -r requirements.txt; \ + rm requirements.txt + +COPY wheels/ /wheels +RUN set -eux; \ + python -m pip install -q --no-index --no-cache-dir /wheels/*.whl; \ + rm -r /wheels + +ARG DEEPHAVEN_VERSION +ADD serverApplicationDist/server-jetty-${DEEPHAVEN_VERSION}.tar /opt/deephaven + +RUN set -eux; \ + ln -s /opt/deephaven/server-jetty-${DEEPHAVEN_VERSION} /opt/deephaven/server + +COPY configure/image-bootstrap.properties image-bootstrap.properties + +FROM $BASE +COPY --from=install / / +VOLUME /data +VOLUME /cache +HEALTHCHECK --interval=3s --retries=3 --timeout=11s CMD /bin/grpc_health_probe -addr=localhost:10000 -connect-timeout=10s || exit 1 +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/server/src/main/server/requirements.txt b/docker/server-jetty/src/main/server-jetty/requirements.txt similarity index 100% rename from docker/server/src/main/server/requirements.txt rename to docker/server-jetty/src/main/server-jetty/requirements.txt diff --git a/docker/server/build.gradle b/docker/server/build.gradle index 4bbef2dceee..c26d608e04f 100644 --- a/docker/server/build.gradle +++ b/docker/server/build.gradle @@ -9,17 +9,17 @@ plugins { def targetArch = Architecture.targetArchitecture(project) def baseMapAmd64 = [ - 'server-base': 'server', - 'nltk-base': 'server-nltk', - 'pytorch-base': 'server-pytorch', - 'sklearn-base': 'server-sklearn', - 'tensorflow-base': 'server-tensorflow', - 'all-ai-base': 'server-all-ai' + 'server-base': 'server-netty', + 'nltk-base': 'server-nltk-netty', + 'pytorch-base': 'server-pytorch-netty', + 'sklearn-base': 'server-sklearn-netty', + 'tensorflow-base': 'server-tensorflow-netty', + 'all-ai-base': 'server-all-ai-netty' ] // Only the server image is supported on arm64 // TODO(deephaven-core#1702): Support arm64 builds for applicable extended images -def baseMapArm64 = baseMapAmd64.findAll { key, value -> value == 'server' } +def baseMapArm64 = baseMapAmd64.findAll { key, value -> value == 'server-netty' } def baseMap = targetArch == Architecture.AMD64 ? baseMapAmd64 : baseMapArm64 diff --git a/docker/server/src/main/configure/image-bootstrap.properties b/docker/server/src/main/configure/image-bootstrap.properties index 82dd16c79d4..490d83f2e75 100644 --- a/docker/server/src/main/configure/image-bootstrap.properties +++ b/docker/server/src/main/configure/image-bootstrap.properties @@ -3,3 +3,4 @@ workspace=. devroot=. deephaven.cache.dir=/cache +storage.path=/data diff --git a/docker/server/src/main/server-all-ai/requirements.txt b/docker/server/src/main/server-all-ai-netty/requirements.txt similarity index 100% rename from docker/server/src/main/server-all-ai/requirements.txt rename to docker/server/src/main/server-all-ai-netty/requirements.txt diff --git a/docker/server/src/main/server-netty/requirements.txt b/docker/server/src/main/server-netty/requirements.txt new file mode 100644 index 00000000000..3ba59ecbbab --- /dev/null +++ b/docker/server/src/main/server-netty/requirements.txt @@ -0,0 +1,13 @@ +deephaven-plugin==0.2.0 +importlib-metadata==4.12.0 +java-utilities==0.2.0 +jpy==0.12.0 +llvmlite==0.39.1 +numba==0.56.2 +numpy==1.21.6 +pandas==1.3.5 +python-dateutil==2.8.2 +pytz==2022.2.1 +six==1.16.0 +typing_extensions==4.3.0 +zipp==3.8.1 diff --git a/docker/server/src/main/server-nltk/requirements.txt b/docker/server/src/main/server-nltk-netty/requirements.txt similarity index 100% rename from docker/server/src/main/server-nltk/requirements.txt rename to docker/server/src/main/server-nltk-netty/requirements.txt diff --git a/docker/server/src/main/server-pytorch/requirements.txt b/docker/server/src/main/server-pytorch-netty/requirements.txt similarity index 100% rename from docker/server/src/main/server-pytorch/requirements.txt rename to docker/server/src/main/server-pytorch-netty/requirements.txt diff --git a/docker/server/src/main/server-sklearn/requirements.txt b/docker/server/src/main/server-sklearn-netty/requirements.txt similarity index 100% rename from docker/server/src/main/server-sklearn/requirements.txt rename to docker/server/src/main/server-sklearn-netty/requirements.txt diff --git a/docker/server/src/main/server-tensorflow/requirements.txt b/docker/server/src/main/server-tensorflow-netty/requirements.txt similarity index 100% rename from docker/server/src/main/server-tensorflow/requirements.txt rename to docker/server/src/main/server-tensorflow-netty/requirements.txt diff --git a/redpanda-apicurio/.env b/redpanda-apicurio/.env index 76597c029b6..0d77b06d744 100644 --- a/redpanda-apicurio/.env +++ b/redpanda-apicurio/.env @@ -2,4 +2,4 @@ COMPOSE_PROJECT_NAME=core-redpanda-apicurio DEEPHAVEN_PORT=10000 DEEPHAVEN_CONSOLE_TYPE=python DEEPHAVEN_APPLICATION_DIR=/data/app.d -DEEPHAVEN_SERVER_IMAGE=deephaven/server:local-build +DEEPHAVEN_SERVER_IMAGE=deephaven/server-jetty:local-build diff --git a/redpanda-apicurio/docker-compose.yml b/redpanda-apicurio/docker-compose.yml index d626d1cdd28..29b1eb1cfb8 100644 --- a/redpanda-apicurio/docker-compose.yml +++ b/redpanda-apicurio/docker-compose.yml @@ -9,35 +9,6 @@ services: file: ../docker-compose-common.yml service: server - web: - extends: - file: ../docker-compose-common.yml - service: web - - # Should only be used for non-production deployments, see grpc-proxy/README.md for more info - grpc-proxy: - extends: - file: ../docker-compose-common.yml - service: grpc-proxy - depends_on: - server: - condition: service_healthy - - - envoy: - # A reverse proxy configured for no SSL on localhost. It fronts the requests - # for the static content and the websocket proxy. - extends: - file: ../docker-compose-common.yml - service: envoy - depends_on: - server: - condition: service_healthy - grpc-proxy: - condition: service_started - web: - condition: service_started - redpanda: extends: file: ../redpanda-standalone/docker-compose.yml diff --git a/redpanda/.env b/redpanda/.env index 6bbb97443a3..b7bddf3c7f2 100644 --- a/redpanda/.env +++ b/redpanda/.env @@ -2,4 +2,4 @@ COMPOSE_PROJECT_NAME=core-redpanda DEEPHAVEN_PORT=10000 DEEPHAVEN_CONSOLE_TYPE=python DEEPHAVEN_APPLICATION_DIR=/data/app.d -DEEPHAVEN_SERVER_IMAGE=deephaven/server:local-build +DEEPHAVEN_SERVER_IMAGE=deephaven/server-jetty:local-build diff --git a/redpanda/docker-compose.yml b/redpanda/docker-compose.yml index 7730a8328b3..49519441f19 100644 --- a/redpanda/docker-compose.yml +++ b/redpanda/docker-compose.yml @@ -9,34 +9,6 @@ services: file: ../docker-compose-common.yml service: server - web: - extends: - file: ../docker-compose-common.yml - service: web - - # Should only be used for non-production deployments, see grpc-proxy/README.md for more info - grpc-proxy: - extends: - file: ../docker-compose-common.yml - service: grpc-proxy - depends_on: - server: - condition: service_healthy - - envoy: - # A reverse proxy configured for no SSL on localhost. It fronts the requests - # for the static content and the websocket proxy. - extends: - file: ../docker-compose-common.yml - service: envoy - depends_on: - server: - condition: service_healthy - grpc-proxy: - condition: service_started - web: - condition: service_started - redpanda: extends: file: ../redpanda-standalone/docker-compose.yml diff --git a/settings.gradle b/settings.gradle index 6c3ed6ffba3..83ac2a3d0f7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -314,6 +314,9 @@ project(':docker-runtime-base').projectDir = file('docker/runtime-base') include(':docker-server') project(':docker-server').projectDir = file('docker/server') +include(':docker-server-jetty') +project(':docker-server-jetty').projectDir = file('docker/server-jetty') + include(':docker-web') project(':docker-web').projectDir = file('docker/web') diff --git a/sphinx/sphinx.gradle b/sphinx/sphinx.gradle index 8380e07bc11..aae3e841277 100644 --- a/sphinx/sphinx.gradle +++ b/sphinx/sphinx.gradle @@ -29,7 +29,7 @@ def copySphinxLib = tasks.register('copySphinxLib', Sync) { def sphinxDockerfile = tasks.register('sphinxDockerfile', Dockerfile) { destFile.set layout.buildDirectory.file('sphinx-image/Dockerfile') // Deephaven server python API requires that the wheel be installed to build, so we share this image - from 'deephaven/server:local-build' + from 'deephaven/server-netty:local-build' copyFile "./wheel", "/wheel" copyFile "./lib", '${VIRTUAL_ENV}/lib/python3.7/site-packages/' @@ -52,7 +52,7 @@ def sphinxImage = Docker.registerDockerImage(project, 'sphinx') { inputs.files copyPyClientWhl.get().outputs.files inputs.files copySphinxLib.get().outputs.files inputDir.set layout.buildDirectory.dir('sphinx-image') - inputs.files project(':docker-server').tasks.findByName('buildDocker-server').outputs.files // deephaven/server + inputs.files project(':docker-server').tasks.findByName('buildDocker-server-netty').outputs.files // deephaven/server-netty images.add('deephaven/sphinx:local-build') } @@ -101,7 +101,7 @@ def cppClientDoxygenTask = Docker.registerDockerTask(project, 'cppClientDoxygen' } dockerfile { // share the common base image to keep it simple - from 'deephaven/server:local-build' + from 'deephaven/server-netty:local-build' runCommand('''set -eux; \\ apt-get update; \\ @@ -116,7 +116,7 @@ def cppClientDoxygenTask = Docker.registerDockerTask(project, 'cppClientDoxygen' doxygen ''') } - parentContainers = [project(':docker-server').tasks.findByName('buildDocker-server')] // deephaven/server + parentContainers = [project(':docker-server').tasks.findByName('buildDocker-server-netty')] // deephaven/server-netty containerOutPath = '/project/doc/doxygenoutput' copyOut { into "$buildDir/cppClientDoxygen"