You are viewing the RapidMiner Hub documentation for version 10.1 - Check here for latest version
Deep Learning template
In what follows, it is assumed that you will be deploying this template on Linux.
Note that the tools for running GPU-enabled Docker images on Windows are in active development.
The template defined below is GPU-enabled, because it is meant for Deep Learning. The following two Docker images replace the corresponding images in the standard template for RapidMiner AI Hub.
- 1 GPU-enabled RapidMiner Server instance (
rapidminer/rapidminer-server:9.9.0-DL-GPU
) - 1 GPU-enabled RapidMiner Job Agent (
rapidminer/rapidminer-execution-jobagent:9.9.0-DL-GPU
)
For a detailed description of every Docker image, see the image reference.
If you prefer a simpler setup, without all the extra services provided by RapidMiner AI Hub, see the standalone instructions.
Pre-installed and pre-configured
Whether you use the standalone template or the full RapidMiner AI Hub, the benefit is that CUDA and cuDNN are pre-installed on the Docker image, together with the following extensions:
and the Job Agent is pre-configured via the file
job-agent-home/config/rapidminer/rapidminer.properties
rapidminer.backend.nd4j=GPU-CUDA rapidminer.backend.nd4j.max_bytes=32G rapidminer.backend.nd4j.max_physical_bytes=48G rapidminer.deeplearning.training_ui.ports=60080
Note however that to give Docker access to the GPU, you need to install some additional software.
Table of contents
- System requirements
- Preliminaries: Nvidia setup
- Instructions (standalone)
- Instructions (RapidMiner AI Hub)
- The environment file (.env)
- The definition file (docker-compose.yml)
System requirements
Minimum recommended hardware configuration
The amount of memory needed depends heavily on the amount of data that will be processed by RapidMiner AI Hub. By themselves, the RapidMiner services can run with as little as 16 GB. However, in production environments, we recommend 32GB or more depending on user data, in order to provide users with enough capacity to analyze data from realistic use cases.
Each virtual or physical machine should at least have:
- Quad core
- 32GB RAM
- >20GB free disk space
Preliminaries: Nvidia setup
Although the Deep Learning extension does not require a GPU, you will get much better performance when using one of Nvidia's CUDA-compatible GPUs to build your models than when using the CPU. To give Docker access to the GPU, you need to install some additional software.
Make sure you have an Nvidia graphics card, and that the Nvidia drivers are installed
Install
nvidia-docker2
, to make the GPU available inside docker containers
Make sure the Nvidia drivers are installed
On Linux, use the command-line tool lspci
to make sure that you are using
the non-free graphics driver nvidia
, not the default driver nouveau
.
$ lspci -nn | egrep -i "3d|display|vga" 4b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [TITAN X] [10de:1b00] (rev a1) $ lspci -v -s 4b:00.0 4b:00.0 VGA compatible controller: NVIDIA Corporation GP102 [TITAN X] (rev a1) (prog-if 00 [VGA controller]) Subsystem: NVIDIA Corporation GP102 [TITAN X] Physical Slot: 4 Flags: bus master, fast devsel, latency 0, IRQ 65, NUMA node 0 Memory at ce000000 (32-bit, non-prefetchable) [size=16M] Memory at b0000000 (64-bit, prefetchable) [size=256M] Memory at c0000000 (64-bit, prefetchable) [size=32M] I/O ports at c000 [size=128] Expansion ROM at 000c0000 [virtual] [disabled] [size=128K] Capabilities:Kernel driver in use: nvidia Kernel modules: nvidia
If the driver is identified as nouveau
, you need to first install the package nvidia-driver
and then restart the computer.
Install nvidia-docker2
To give Docker access to the GPU, install nvidia-docker2
,
after configuring your Linux distribution with a custom repository.
The instructions given below apply to Debian / Ubuntu distributions,
but see Repository configuration
if you are using some other Linux distribution.
Configure the repository for Debian / Ubuntu
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
Once the repository is ready, install the package nvidia-docker2
,
and restart Docker:
sudo apt update && sudo apt install nvidia-docker2 sudo systemctl restart docker
To check that everything is working as expected, run nvidia-smi
inside a docker container, and look for output resembling the output below.
$ docker run --rm --gpus all nvidia/cuda:10.1-base nvidia-smi Status: Downloaded newer image for nvidia/cuda:10.1-base Thu Oct 22 15:21:59 2020 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.66 Driver Version: 450.66 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 TITAN X (Pascal) On | 00000000:4B:00.0 On | N/A | | 23% 29C P8 14W / 250W | 358MiB / 12192MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| +-----------------------------------------------------------------------------+
Read more:
- https://docs.docker.com/config/containers/resource_constraints/#gpu
- https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker
Instructions (Standalone)
docker-compose.yml
version: "2.4" services: gpu-rapidminer-server: image: rapidminer/rapidminer-server:9.9.0-DL-GPU runtime: nvidia ports: - "8080:8080" # server port - "60080:60080" # training UI port environment: EMBEDDED_DATABASE: 1 BUNDLED_JOB_AGENT: 1 volumes: - gpu-rm-server-home-vol:/persistent-rapidminer-home volumes: gpu-rm-server-home-vol:
If you have no need for any of the extra services provided by RapidMiner AI Hub (see below),
the simplest setup is to deploy a single GPU-enabled Docker image for RapidMiner Server,
using the embedded database and the embedded (GPU-enabled) Job Agent.
The only file you need is docker-compose.yml
, displayed above.
Transfer the file
docker-compose.yml
to the computer with the GPU, where nvidia-docker2 is installed.From the directory containing
docker-compose.yml
, issue the following command:docker-compose up -d
Via a browser, connect to port 8080 of the deployment URL, e.g.,
http://<deployment-url>:8080
. Enter the username admin and the password changeit.
Upgrading to version 3 of the Compose file
The file docker-compose.yml
described above uses version 2 of the Compose file.
To upgrade to version 3 of the Compose file,
take the following steps:
in the file
docker-compose.yml
, change theversion
from "2.4" to "3" and delete the line:runtime: nvidia
in the configuration file
/etc/docker/daemon.json
, add the following line as the first entry:"default-runtime": "nvidia",
Instructions (RapidMiner AI Hub)
If you want the extra services provided by RapidMiner AI Hub, proceed as follows.
You will need the following two files, included in the ZIP file in step (1).
Note that this template is identical to the standard template for RapidMiner AI Hub,
except for the value of SERVER_VERSION=9.9.0-DL-GPU
and the inclusion of a Training UI port in the Job Agent.
Proceed as follows:
Remember to set the variables
PUBLIC_URL
andSSO_PUBLIC_URL
in the .env file.Remember to include the RapidMiner Server and RapidMiner Go licenses in the environment file, respectively as
SERVER_LICENSE
andGO_LICENSE
.When connecting from RapidMiner Studio, remember to check RapidMiner AI Hub / Enterprise Login, with username admin and password changeit.
The environment file (.env)
# ############################################ # # Global parameters # # ############################################ # Public domain of the deployment PUBLIC_DOMAIN=platform.rapidminer.com # Public URL of the deployment that will be used for external access (Public domain + protocol + port) PUBLIC_URL=https://platform.rapidminer.com # Public URL of the SSO endpoint that will be used for external access. In most cases it should be the same as the PUBLIC_URL SSO_PUBLIC_URL=https://platform.rapidminer.com # Enable/disable the service build into the RapidMiner cloud images, that updates the PUBLIC_URL and SSO_PUBLIC_URL variables to the new dynamic cloud hostname/IP address AUTOMATIC_PUBLIC_URL_UPDATE_FOR_CLOUD_IMAGES=false # Enable/disable the Legacy BASIC authentication support for REST endpoints, like webservices. (lowercase true/false) LEGACY_REST_BASIC_AUTH_ENABLED=false # Timezone setting TZ=UTC # Docker-compose timeout setting COMPOSE_HTTP_TIMEOUT=600 # ############################################ # # Deployment parameters # # ############################################ # Prefix to use for docker registry REGISTRY=rapidminer/ # Version of the Init container INIT_VERSION=9.9.0 # Enable configuring server settings for Python Scripting extension INIT_SHARED_CONDA_SETTINGS=true # User migration settings for migrating from non-Keycloak-based deployments USER_MIGRATION_ENABLED=True USER_MIGRATION_DRY_RUN=False # ############################################ # # KeyCloak (SSO) # # ############################################ # Keycloak container version KEYCLOAK_VERSION=9.9.0 # Keycloak database parameters KC_DB=kcdb KC_USER=kcdbuser KC_PASSWORD=kcdbpass # Default platform admin user credentials KEYCLOAK_USER=admin KEYCLOAK_PASSWORD=changeit # SSO default parameters SSO_IDP_REALM=master SSO_SSL_REQUIRED=none # ############################################ # # Rapidminer server # # ############################################ SERVER_VERSION=9.9.0-DL-GPU SERVER_DBHOST=rm-postgresql-svc SERVER_DBSCHEMA=rapidminer-server-db SERVER_DBUSER=rmserver-db-user SERVER_DBPASS=w61J784XSb24K4LRV97MbE16i8xa9O SERVER_MAX_MEMORY=2048M RMSERVER_SSO_CLIENT_ID=urn:rapidminer:server RMSERVER_SSO_CLIENT_SECRET= SERVER_LICENSE= RAPIDMINER_SERVER_HOST=rm-server-svc RAPIDMINER_SERVER_PORT=8080 RAPIDMINER_SERVER_URL=http://rm-server-svc:8080 AUTH_SECRET=TTY5MjUxbzRBN2ZIWThpNGVKNGo4V2xqOHk0dTNV BROKER_ACTIVEMQ_USERNAME=amq-user BROKER_ACTIVEMQ_PASSWORD=M69251o4A7fHY8i4eJ4j8Wlj8y4u3U # ############################################ # # Job Agent # # ############################################ JOBAGENT_QUEUE_ACTIVEMQ_URI=failover:(tcp://rm-server-svc:5672) JOBAGENT_CONTAINER_COUNT=2 JOB_QUEUE=DEFAULT JOBAGENT_CONTAINER_MEMORYLIMIT=2048 #RAPIDMINER_JOBAGENT_OPTS="-Djobagent.python.registryBaseUrl=http://platform-admin-webui-svc:1082/" RAPIDMINER_JOBAGENT_OPTS= RAPIDMINER_SERVER_PROTOCOL=http # ############################################ # # Proxy # # ############################################ PROXY_VERSION=9.9.0 JUPYTER_BACKEND=http://rm-jupyterhub-svc:8000 JUPYTER_URL_SUFFIX=/jupyter GRAFANA_BACKEND=http://rm-grafana-svc:3000 GRAFANA_URL_SUFFIX=/grafana PA_BACKEND=http://platform-admin-webui-svc:1082/ PA_URL_SUFFIX=/platform-admin RTS_WEBUI_BACKEND=http://platform-admin-webui-svc:1082/ RTS_WEBUI_URL_SUFFIX=/rts-admin RTS_SCORING_BACKEND=http://rts-agent-svc:8090/ RTS_SCORING_URL_SUFFIX=/rts KEYCLOAK_BACKEND=http://rm-keycloak-svc:8080 LANDING_BACKEND=http://landing-page TOKEN_BACKEND=http://rm-token-tool-svc TOKEN_URL_SUFFIX=/get-token ALLOW_LE=true LE_BACKEND=http://letsencrypt-svc:84 PASSWORD_FILE_PATH=/etc/nginx/ssl/password.txt HTTPS_CRT_PATH=/etc/nginx/ssl/certificate.crt HTTPS_KEY_PATH=/etc/nginx/ssl/private.key HTTPS_DH_PATH=/etc/nginx/ssl/dhparam.pem PROXY_DATA_UPLOAD_LIMIT=10240M # ############################################ # # Jupyterhub # # ############################################ RM_JUPYTER_VERSION=9.9.0 JHUB_POSTGRES_HOST=rm-jupyterhub-db-svc JHUB_POSTGRES_DB=jupyterhub JHUB_POSTGRES_USER=jupyterhubdbuser JHUB_POSTGRES_PASSWORD=FoExRExzQsL7UpgEYa5sO7mhiGhi3ne JHUB_HOSTNAME=rm-jupyterhub-svc JUPYTERHUB_CRYPT_KEY=e0084caa38f521cc985d675168bcf7b7137cf5b0d4a3e8b99d2e3542705584eb JHUB_DEBUG=False JHUB_TOKEN_DEBUG=False JHUB_PROXY_DEBUG=False JHUB_DB_DEBUG=False JHUB_SPAWNER_DEBUG=False JUPYTER_STACK_NAME=default SSO_NB_UID_KEY=X_NB_UID SSO_NB_GID_KEY=X_NB_GID SSO_NB_CUSTOM_BIND_MOUNTS_KEY=X_NB_CUSTOM_BIND_MOUNTS # Content should be in json format, use quotes here instead of apostrophes #JUPYTER_NB_CUSTOM_BIND_MOUNTS={"/usr/share/doc/apt":"/tmp/apt","/usr/share/doc/mount/":"/tmp/mount"} JUPYTER_NB_CUSTOM_BIND_MOUNTS= DOCKER_NOTEBOOK_CPU_LIMIT=100 DOCKER_NOTEBOOK_MEM_LIMIT=2g #k8s #DOCKER_NOTEBOOK_MEM_LIMIT=2G JHUB_SSO_CLIENT_ID=urn:rapidminer:jupyterhub JHUB_SSO_CLIENT_SECRET= JHUB_SPAWNER=dockerspawner JHUB_API_PROTOCOL=http JHUB_API_HOSTNAME=rm-jupyterhub-svc JHUB_PROXY_PORT=8000 JHUB_API_PORT=8001 JHUB_APP_PORT=8081 JHUB_ENV_VOLUME_NAME=rm-coding-shared-vol #JHUB_CUSTOM_CA_CERTS=${PWD}/ssl/deb_cacerts/ #JHUB_SPAWNER=kubespawner #JHUB_K8S_CMD: '/entrypoint.sh' #JHUB_K8S_ARGS: '' #JHUB_K8S_NAMESPACE=advertisinganalytics #JHUB_K8S_NODE_SELECTOR_NAME: 'rapidminer.customer' #JHUB_K8S_NODE_SELECTOR_VALUE: 'rapidminer' #JHUB_K8S_NOTEBOOK_STORAGE_ACCESS_MODE=ReadWriteOnce #JHUB_K8S_NOTEBOOK_STORAGE_CAPACITY=5Gi #JHUB_K8S_NOTEBOOK_STORAGE_CLASS=ms-ebs-us-west-2b #JHUB_K8S_IMAGE_PULL_SECRET=rm-docker-login-secret #JHUB_K8S_ENV_PVC_NAME=python-envs-pvc #JHUB_K8S_ENV_PVC_SUBPATH=coding-shared JHUB_DOCKER_DISABLE_NOTEBOOK_IMAGE_PULL_AT_STARTUP=False JHUB_DISABLE_AIHUB_TOKEN_REQUESTS=False # ############################################ # # Radoop Proxy # # ############################################ RADOOP_PROXY_VERSION=1.2.1 # Authentication: 'server|jwt|superuser' RADOOP_PROXY_AUTHENTICATION=superuser RADOOP_PROXY_SUPERUSERNAME=proxyadmin RADOOP_PROXY_SUPERUSERPASSWORD=changeit RADOOP_PROXY_PORT=1081 RADOOP_PROXY_WORKERSPOOLSIZE=100 RADOOP_PROXY_SSL="off" # ############################################ # # Platform admin # # ############################################ PA_VERSION=9.9.0 PA_SSO_CLIENT_ID=urn:rapidminer:platform-admin PA_SSO_CLIENT_SECRET= PA_DISABLE_PYTHON=false PA_DISABLE_RTS=false # # Coding Environment Storage # CES_VERSION=9.9.0 # ############################################ # # Real-Time Scoring Agent # # ############################################ RTS_VERSION=9.9.0 WAIT_FOR_LICENSES=1 # ############################################ # # Grafana # # ############################################ RM_GRAFANA_VERSION=9.9.0 GRAFANA_SSO_CLIENT_ID=urn:rapidminer:grafana GRAFANA_SSO_CLIENT_SECRET= # ############################################ # # TabGo # # ############################################ # Used for both TabGo and the TabGo proxy. TABGO_VERSION=9.9 # Proxy specific settings. TABGO_PROXY_PORT=4443 TABGO_BACKEND=http://rm-tabgo-svc # Settings for the TabGo service. TABGO_MAX_MEMORY=384m TABGO_PORT=8090 # Rate limit for small requests (e.g., scoring a single data row). The default # values limit the rate to 10 requests per 5 seconds. TABGO_SMALL_REQUEST_LIMIT=10 TABGO_SMALL_REQUEST_INTERVAL=5 # Change the log level to DEBUG to log HTTP traffic routed through TabGo. TABGO_LOG_LEVEL=INFO # Additional Java options should only be used for debugging. TABGO_JAVA_OPTIONS= # ############################################ # # LetsEncrypt Client # # ############################################ LE_VERSION=9.9.0 # ############################################ # # Docker Deployment Manager # # ############################################ DDM_VERSION=9.9.0 # ############################################ # # Landing page # # ############################################ RM_LANDING_VERSION=9.9.0 LANDING_SSO_CLIENT_ID=urn:rapidminer:landing-page LANDING_SSO_CLIENT_SECRET= # ############################################ # # Token Tool # # ############################################ TOKEN_SSO_CLIENT_ID=urn:rapidminer:token-tool TOKEN_SSO_CLIENT_SECRET= # ############################################ # # RapidMiner Go # # ############################################ ## General setup GO_LICENSE= GO_AUTH_SECRET=dGhhbmt5b3Vmb3J1c2luZ2F1dG9tb2RlbG9ucHJlbWlzZTIwMTk= GO_DB_HOST=rapidminer-automodel-db GO_AMQ_URL=tcp://rapidminer-automodel-activemq:61616 GO_AMQ_USERNAME=next GO_AMQ_PASSWORD=next GO_JOB_QUEUE=rapiminder-automodeler-job-queue GO_JOB_STATUS_QUEUE=rapidminer-automodeler-job-status-queue GO_JOB_COMMAND_TOPIC=rapidminer-automodeler-job-command-topic #_JAVA_OPTIONS='-Dlogging.level.root=DEBUG' ## Resource management # RapidMiner Go is preconfigured to run on a host (or Docker engine) with 8GB GO_JOB_CONTAINERS=1 ## Docker images GO_IMAGE_TAG_ROUTING=2.5.0 GO_IMAGE_TAG_RMID=2.5.3 GO_IMAGE_TAG_AM=2.5.1 GO_IMAGE_TAG_JC=2.5.1 GO_IMAGE_TAG_ET=2.4.0 # ############################################ # # GO ROUTING # # ############################################ GO_ROUTING_RMID_HOST_PORT_1=rapidminer-automodel-rmid:8080 GO_ROUTING_AM_HOST_PORT_1=rapidminer-automodeler:8080 GO_ROUTING_EVENT_HOST_PORT=rapidminer-ui-event-tracking:8080 # Docker's internal DNS server GO_ROUTING_RESOLVER=127.0.0.11 GO_ROUTING_SERVER_NAME=localhost GO_ROUTING_PROTOCOL=http # ############################################ # # GO RMID # # ############################################ GO_RMID_SPRING_PROFILES_ACTIVE=db-postgresql,is-saml,on-prem,branding GO_RMID_FRONTEND_TRACKING_ENABLED=false GO_RMID_TOKEN_MAX_AGE=86400 GO_RMID_LOGIN_TYPE=LOGIN_TYPE_EXTERNAL GO_SSO_CLIENT_ID=urn:rapidminer:go GO_RMID_SAML_KEYSTORE_PASSWORD=bXlrZXlwYXNz GO_RMID_SAML_KEYSTORE_ALIAS=mykeyalias GO_RMID_JAVA_OPTIONS=-Xmx512M # ############################################ # # GO AUTOMODELER # # ############################################ GO_AUTOMODELER_SPRING_PROFILES_ACTIVE=db-postgresql,on-prem,branding # Maximal Data file size given in bytes upto 2GB GO_AUTOMODELER_SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE=104857600 GO_AUTOMODELER_RMID_BASE_URL=http://rapidminer-automodel-rmid:8080 GO_AUTOMODELER_FRONTEND_TRACKING_ENABLED=true GO_AUTOMODELER_FILESTORE_MIN_ROW_LIMIT=50 GO_AUTOMODELER_EXECUTION_TASK_LIMIT_PER_USER=4 # Maximal size of RapidMiner result set given in MB GO_AUTOMODELER_EXECUTION_MAXIMUM_TOTAL_RESULT_SIZE=2000 GO_AUTOMODELER_DATA_IMPORT_MINIMUM_ATTRIBUTE_COUNT=3 GO_AUTOMODELER_DATA_IMPORT_MAXIMUM_ATTRIBUTE_COUNT=500 GO_AUTOMODELER_JAVA_OPTIONS=-Xmx2G # ############################################ # # GO JC # # ############################################ GO_JC_SPRING_PROFILES_ACTIVE=on-prem GO_AMQ_REST_URL=http://rapidminer-automodel-activemq:8161 GO_JC_JAVA_OPTIONS=-Xmx4G # ############################################ # # GO Event Tracking # # ############################################ GO_ET_JAVA_OPTIONS=-Xmx320M # ############################################ # # GO AMQ # # ############################################ GO_ACTIVEMQ_CONFIG_DEFAULTACCOUNT=false GO_ACTIVEMQ_ADMIN_LOGIN=admin GO_ACTIVEMQ_ADMIN_PASSWORD=admin GO_AMQ_MAXMEMORY=512 # ############################################ # # GO DB # # ############################################ GO_POSTGRES_PASSWORD=pgadminpass GO_POSTGRES_USER=pgadmin GO_AUTOMODELER_DB_USER=cookie GO_AUTOMODELER_DB_PASSWORD=cookiepass GO_AUTOMODELER_DB_NAME=cookie GO_RMID_DB_USER=rmid GO_RMID_DB_PASSWORD=rmid GO_RMID_DB_NAME=rmid # ############################################ # # Service overrides # - true/false - false means automatic detection # # ############################################ #DEPLOYED_GRAFANA=false #DEPLOYED_JUPYTERHUB=false #DEPLOYED_LANDINGPAGE=false #DEPLOYED_PLATFORMADMIN=false #DEPLOYED_SERVER=false #DEPLOYED_TOKENTOOL=false #DEPLOYED_AUTOMODELER=false
The docker-compose definition (docker-compose.yml)
version: "3.5" services: rm-proxy-svc: image: "${REGISTRY}rapidminer-proxy:${PROXY_VERSION}" hostname: rm-proxy-svc restart: always environment: - KEYCLOAK_BACKEND=${KEYCLOAK_BACKEND} - RMSERVER_BACKEND=${RAPIDMINER_SERVER_URL} - JUPYTER_BACKEND=${JUPYTER_BACKEND} - JUPYTER_URL_SUFFIX=${JUPYTER_URL_SUFFIX} - GRAFANA_BACKEND=${GRAFANA_BACKEND} - GRAFANA_URL_SUFFIX=${GRAFANA_URL_SUFFIX} - PA_BACKEND=${PA_BACKEND} - PA_URL_SUFFIX=${PA_URL_SUFFIX} - TOKEN_BACKEND=${TOKEN_BACKEND} - TOKEN_URL_SUFFIX=${TOKEN_URL_SUFFIX} - ALLOW_LE=${ALLOW_LE} - LE_BACKEND=${LE_BACKEND} - RTS_WEBUI_BACKEND=${RTS_WEBUI_BACKEND} - RTS_WEBUI_URL_SUFFIX=${RTS_WEBUI_URL_SUFFIX} - RTS_SCORING_BACKEND=${RTS_SCORING_BACKEND} - RTS_SCORING_URL_SUFFIX=${RTS_SCORING_URL_SUFFIX} - SSO_PUBLIC_URL=${SSO_PUBLIC_URL} - SSO_IDP_REALM=${SSO_IDP_REALM} - RTS_BASIC_AUTH=true - LANDING_BACKEND=${LANDING_BACKEND} - PASSWORD_FILE_PATH=${PASSWORD_FILE_PATH} - HTTPS_CRT_PATH=${HTTPS_CRT_PATH} - HTTPS_KEY_PATH=${HTTPS_KEY_PATH} - HTTPS_DH_PATH=${HTTPS_DH_PATH} #- DEBUG_CONF_INIT=true #- WAIT_FOR_DHPARAM=true - PROXY_DATA_UPLOAD_LIMIT=${PROXY_DATA_UPLOAD_LIMIT} ports: - 80:80 - 443:443 networks: rm-go-proxy-net: aliases: - rm-proxy-svc - ${PUBLIC_DOMAIN} rm-platform-int-net: aliases: - rm-proxy-svc - ${PUBLIC_DOMAIN} jupyterhub-user-net: aliases: - ${PUBLIC_DOMAIN} volumes: - ./ssl:/etc/nginx/ssl - platform-admin-uploaded-vol:/rapidminer/platform-admin/uploaded/ letsencrypt-svc: image: "${REGISTRY}rm-letsencrypt-client:${LE_VERSION}" hostname: rm-letsencrypt-client-svc restart: always environment: - PUBLIC_URL=${PUBLIC_URL} - LETSENCRYPT_HOME=/certificates/ - DOMAIN=${PUBLIC_URL} - WEBMASTER_MAIL=devops@rapidminer.com - TZ=Europe/Budapest # ports: # - 84:84 networks: rm-platform-int-net: aliases: - rm-letsencrypt-client-svc volumes: - ./ssl:/etc/letsencrypt/ rm-keycloak-db-svc: image: postgres:9.6 restart: always hostname: rm-keycloak-db-svc environment: - POSTGRES_DB=${KC_DB} - POSTGRES_USER=${KC_USER} - POSTGRES_PASSWORD=${KC_PASSWORD} volumes: - keycloak-postgresql-vol:/var/lib/postgresql/data networks: rm-idp-db-net: aliases: - rm-keycloak-db-svc rm-keycloak-svc: image: ${REGISTRY}rapidminer-keycloak:${KEYCLOAK_VERSION} restart: always hostname: rm-keycloak-svc environment: - DB_VENDOR=POSTGRES - DB_ADDR=rm-keycloak-db-svc - DB_DATABASE=${KC_DB} - DB_USER=${KC_USER} - DB_SCHEMA=public - DB_PASSWORD=${KC_PASSWORD} - KEYCLOAK_USER=${KEYCLOAK_USER} - KEYCLOAK_PASSWORD=${KEYCLOAK_PASSWORD} - PROXY_ADDRESS_FORWARDING=true #- KEYCLOAK_LOGLEVEL=DEBUG #- ROOT_LOGLEVEL=DEBUG #- JDBC_PARAMS=ssl=true depends_on: - rm-keycloak-db-svc - rm-proxy-svc networks: rm-platform-int-net: aliases: - rm-keycloak-svc rm-idp-db-net: aliases: - rm-keycloak-svc rm-init-svc: image: "${REGISTRY}rapidminer-deployment-init:${INIT_VERSION}" restart: "no" hostname: rm-keycloak-init-svc depends_on: - rm-keycloak-svc - rm-postgresql-svc environment: - LEGACY_REST_BASIC_AUTH_ENABLED=${LEGACY_REST_BASIC_AUTH_ENABLED} - PUBLIC_URL=${PUBLIC_URL} - SSO_PUBLIC_URL=${SSO_PUBLIC_URL} volumes: - ./.env:/.env - ./docker-compose.yml:/docker-compose.yml:ro - keycloak-admin-cli-vol:/root/.keycloak/ - deployed-services-vol:/rapidminer/deployed-services/ - ./go/saml:/go/saml/ - ./go/licenses:/go/licenses/ networks: rm-platform-int-net: aliases: - rm-init-svc rm-server-db-net: aliases: - rm-init-svc rm-postgresql-svc: image: "postgres:9.6" hostname: rm-postgresql-svc restart: always environment: - POSTGRES_DB=${SERVER_DBSCHEMA} - POSTGRES_USER=${SERVER_DBUSER} - POSTGRES_PASSWORD=${SERVER_DBPASS} volumes: - rm-postgresql-vol:/var/lib/postgresql/data networks: rm-server-db-net: aliases: - rm-postgresql-svc rm-server-svc: image: "${REGISTRY}rapidminer-server:${SERVER_VERSION}" hostname: rm-server-svc restart: always environment: - PA_BASE_URL=${PA_BACKEND} - PA_SYNC_DEBUG=False # This may be useful, if server and platform-admin are not on an internal network # - PA_SYNC_AUTH_USER=admin # - PA_SYNC_AUTH_PASS=changeit - DBHOST=${SERVER_DBHOST} - DBSCHEMA=${SERVER_DBSCHEMA} - DBUSER=${SERVER_DBUSER} - DBPASS=${SERVER_DBPASS} - SSO_PUBLIC_URL=${SSO_PUBLIC_URL} - SSO_IDP_REALM=${SSO_IDP_REALM} - SSO_CLIENT_ID=${RMSERVER_SSO_CLIENT_ID} - SSO_CLIENT_SECRET=${RMSERVER_SSO_CLIENT_SECRET} - SSO_SSL_REQUIRED=${SSO_SSL_REQUIRED} - LEGACY_REST_BASIC_AUTH_ENABLED=${LEGACY_REST_BASIC_AUTH_ENABLED} - SERVER_MAX_MEMORY=${SERVER_MAX_MEMORY} - BROKER_ACTIVEMQ_USERNAME=${BROKER_ACTIVEMQ_USERNAME} - BROKER_ACTIVEMQ_PASSWORD=${BROKER_ACTIVEMQ_PASSWORD} - JOBSERVICE_AUTH_SECRET=${AUTH_SECRET} - JUPYTER_URL_SUFFIX=${JUPYTER_URL_SUFFIX} - GRAFANA_URL_SUFFIX=${GRAFANA_URL_SUFFIX} # - PROXY_HTTP_PORT=80 # - PROXY_HTTPS_PORT=443 - TZ=${TZ} - CES_VERSION=${CES_VERSION} volumes: - rm-server-bootstrap-vol:/bootstrap.d - rm-server-home-vol:/persistent-rapidminer-home - rm-coding-shared-vol:/opt/coding-shared/:ro depends_on: - rm-postgresql-svc networks: jupyterhub-user-net: aliases: - rm-server-svc rm-platform-int-net: aliases: - rm-server-svc rm-server-db-net: aliases: - rm-server-svc rm-server-job-agent-svc: image: "${REGISTRY}rapidminer-execution-jobagent:${SERVER_VERSION}" hostname: rm-server-job-agent-svc restart: always environment: - RAPIDMINER_SERVER_HOST=${RAPIDMINER_SERVER_HOST} - RAPIDMINER_SERVER_PROTOCOL=${RAPIDMINER_SERVER_PROTOCOL} - RAPIDMINER_SERVER_PORT=${RAPIDMINER_SERVER_PORT} - JOBAGENT_QUEUE_ACTIVEMQ_URI=${JOBAGENT_QUEUE_ACTIVEMQ_URI} - JOBAGENT_QUEUE_ACTIVEMQ_USERNAME=${BROKER_ACTIVEMQ_USERNAME} - JOBAGENT_QUEUE_ACTIVEMQ_PASSWORD=${BROKER_ACTIVEMQ_PASSWORD} - JOBAGENT_AUTH_SECRET=${AUTH_SECRET} - JOBAGENT_CONTAINER_COUNT=${JOBAGENT_CONTAINER_COUNT} - JOB_QUEUE=${JOB_QUEUE} - JOBAGENT_CONTAINER_MEMORYLIMIT=${JOBAGENT_CONTAINER_MEMORYLIMIT} - RAPIDMINER_JOBAGENT_OPTS=${RAPIDMINER_JOBAGENT_OPTS} - TZ=${TZ} - INIT_SHARED_CONDA_SETTINGS=${INIT_SHARED_CONDA_SETTINGS} - CES_VERSION=${CES_VERSION} ports: - 60080:60080 # Training UI port volumes: - rm-server-bootstrap-ja-vol:/bootstrap.d - rm-coding-shared-vol:/opt/coding-shared/:ro - rm-server-ja-log-vol:/rapidminer-jobagent/home/log - rm-server-ja-data-vol:/rapidminer-jobagent/home/data depends_on: - rm-server-svc networks: rm-platform-int-net: aliases: - rm-server-job-agent-svc rm-radoop-proxy-svc: image: "${REGISTRY}radoop-proxy:${RADOOP_PROXY_VERSION}" hostname: rm-radoop-proxy-svc restart: always environment: - AUTHENTICATION=${RADOOP_PROXY_AUTHENTICATION} - SUPERUSERNAME=${RADOOP_PROXY_SUPERUSERNAME} - SUPERUSERPASSWORD=${RADOOP_PROXY_SUPERUSERPASSWORD} - PORT=${RADOOP_PROXY_PORT} - WORKERSPOOLSIZE=${RADOOP_PROXY_WORKERSPOOLSIZE} - SSL=${RADOOP_PROXY_SSL} - SERVERHOST=${RAPIDMINER_SERVER_HOST} - SERVERPORT=${RAPIDMINER_SERVER_PORT} #- SCHEME ports: # has to be the same number for internal and external ports. - ${RADOOP_PROXY_PORT}:${RADOOP_PROXY_PORT} #depends_on: #- rm-server-svc platform-admin-webui-svc: image: "${REGISTRY}rapidminer-platform-admin-webui:${PA_VERSION}" hostname: platform-admin-webui-svc restart: always environment: - PA_URL_SUFFIX=${PA_URL_SUFFIX} - RTS_SCORING_URL_SUFFIX=${RTS_SCORING_URL_SUFFIX} - RTS_SCORING_BACKEND=${RTS_SCORING_BACKEND} - SSO_PUBLIC_URL=${SSO_PUBLIC_URL} - SSO_IDP_REALM=${SSO_IDP_REALM} - SSO_CLIENT_ID=${PA_SSO_CLIENT_ID} - SSO_CLIENT_SECRET=${PA_SSO_CLIENT_SECRET} - PA_DISABLE_PYTHON=${PA_DISABLE_PYTHON} - PA_DISABLE_RTS=${PA_DISABLE_RTS} - DEBUG=false - CES_VERSION=${CES_VERSION} volumes: - platform-admin-uploaded-vol:/var/www/html/uploaded/ - rts-licenses-vol:/var/www/html/uploaded/licenses/ networks: jupyterhub-user-net: aliases: - platform-admin-webui-svc rm-platform-int-net: aliases: - platform-admin-webui-svc rm-coding-environment-storage-net: aliases: - platform-admin-webui-svc rts-agent-svc: image: "${REGISTRY}rapidminer-execution-scoring:${RTS_VERSION}" hostname: rts-agent-svc restart: always environment: - WAIT_FOR_LICENSES=${WAIT_FOR_LICENSES} - TZ=${TZ} - CES_VERSION=${CES_VERSION} - INIT_SHARED_CONDA_SETTINGS=true volumes: - rts-deployments-vol:/rapidminer-scoring-agent/home/deployments/ - rts-licenses-vol:/rapidminer-scoring-agent/home/resources/licenses/rapidminer-scoring-agent/ - rm-coding-shared-vol:/opt/coding-shared/:ro networks: rm-platform-int-net: aliases: - rts-agent-svc rm-jupyterhub-db-svc: image: ${REGISTRY}rapidminer-jupyterhub-postgres:${RM_JUPYTER_VERSION} hostname: rm-jupyterhub-db-svc restart: always environment: - POSTGRES_DB=${JHUB_POSTGRES_DB} - POSTGRES_USER=${JHUB_POSTGRES_USER} - POSTGRES_PASSWORD=${JHUB_POSTGRES_PASSWORD} volumes: - jupyterhub-postgresql-vol:/var/lib/postgresql/data networks: jupyterhub-user-net: aliases: - rm-jupyterhub-db-svc rm-jupyterhub-svc: image: "${REGISTRY}rapidminer-jupyterhub-jupyterhub:${RM_JUPYTER_VERSION}" hostname: rm-jupyterhub-svc restart: always environment: - RM_JUPYTER_VERSION=${RM_JUPYTER_VERSION} - JHUB_HOSTNAME=${JHUB_HOSTNAME} - SERVER_BASE_URL=${RAPIDMINER_SERVER_URL} - POSTGRES_HOST=${JHUB_POSTGRES_HOST} - POSTGRES_DB=${JHUB_POSTGRES_DB} - POSTGRES_USER=${JHUB_POSTGRES_USER} - POSTGRES_PASSWORD=${JHUB_POSTGRES_PASSWORD} - DOCKER_NOTEBOOK_IMAGE=${REGISTRY}rapidminer-jupyter_notebook:${RM_JUPYTER_VERSION} - JUPYTERHUB_CRYPT_KEY=${JUPYTERHUB_CRYPT_KEY} - DOCKER_NOTEBOOK_CPU_LIMIT=${DOCKER_NOTEBOOK_CPU_LIMIT} - DOCKER_NOTEBOOK_MEM_LIMIT=${DOCKER_NOTEBOOK_MEM_LIMIT} - JHUB_DEBUG=${JHUB_DEBUG} - JHUB_TOKEN_DEBUG=${JHUB_TOKEN_DEBUG} - JHUB_PROXY_DEBUG=${JHUB_PROXY_DEBUG} - JHUB_DB_DEBUG=${JHUB_DB_DEBUG} - JHUB_SPAWNER_DEBUG=${JHUB_SPAWNER_DEBUG} - JUPYTER_STACK_NAME=${JUPYTER_STACK_NAME} - SSO_NB_UID_KEY=${SSO_NB_UID_KEY} - SSO_NB_GID_KEY=${SSO_NB_GID_KEY} - SSO_NB_CUSTOM_BIND_MOUNTS_KEY=${SSO_NB_CUSTOM_BIND_MOUNTS_KEY} - JUPYTER_NB_CUSTOM_BIND_MOUNTS=${JUPYTER_NB_CUSTOM_BIND_MOUNTS} - SSO_PUBLIC_URL=${SSO_PUBLIC_URL} - SSO_IDP_REALM=${SSO_IDP_REALM} - SSO_CLIENT_ID=${JHUB_SSO_CLIENT_ID} - SSO_CLIENT_SECRET=${JHUB_SSO_CLIENT_SECRET} - PUBLIC_URL=${PUBLIC_URL} - JUPYTER_URL_SUFFIX=${JUPYTER_URL_SUFFIX} - SSO_USERNAME_KEY=preferred_username - SSO_RESOURCE_ACCESS_KEY=resource_access - JHUB_DEFAULT_ENV_NAME=aihub-${RM_JUPYTER_VERSION}-python - JHUB_SPAWNER=${JHUB_SPAWNER} - JHUB_API_PROTOCOL=${JHUB_API_PROTOCOL} - JHUB_API_HOSTNAME=${JHUB_API_HOSTNAME} - JHUB_PROXY_PORT=${JHUB_PROXY_PORT} - JHUB_API_PORT=${JHUB_API_PORT} - JHUB_ENV_VOLUME_NAME=${JHUB_ENV_VOLUME_NAME} # - JHUB_CUSTOM_CA_CERTS=${JHUB_CUSTOM_CA_CERTS} # - JHUB_K8S_NAMESPACE=${JHUB_K8S_NAMESPACE} # - JHUB_K8S_NODE_SELECTOR_NAME=${JHUB_K8S_NODE_SELECTOR_NAME} # - JHUB_K8S_NODE_SELECTOR_VALUE=${JHUB_K8S_NODE_SELECTOR_VALUE} # - JHUB_K8S_NOTEBOOK_STORAGE_ACCESS_MODE=${JHUB_K8S_NOTEBOOK_STORAGE_ACCESS_MODE} # - JHUB_K8S_NOTEBOOK_STORAGE_CAPACITY=${JHUB_K8S_NOTEBOOK_STORAGE_CAPACITY} # - JHUB_K8S_NOTEBOOK_STORAGE_CLASS=${JHUB_K8S_NOTEBOOK_STORAGE_CLASS} # - JHUB_K8S_IMAGE_PULL_SECRET=${JHUB_K8S_IMAGE_PULL_SECRET} # - JHUB_K8S_ENV_PVC_NAME=${JHUB_K8S_ENV_PVC_NAME} # - JHUB_K8S_ENV_PVC_SUBPATH=${JHUB_K8S_ENV_PVC_SUBPATH} - JHUB_DOCKER_DISABLE_NOTEBOOK_IMAGE_PULL_AT_STARTUP=${JHUB_DOCKER_DISABLE_NOTEBOOK_IMAGE_PULL_AT_STARTUP} - JHUB_DISABLE_AIHUB_TOKEN_REQUESTS=${JHUB_DISABLE_AIHUB_TOKEN_REQUESTS} volumes: - /var/run/docker.sock:/var/run/docker.sock:rw depends_on: - rm-jupyterhub-db-svc - rm-server-svc networks: rm-platform-int-net: aliases: - rm-jupyterhub-svc jupyterhub-user-net: aliases: - rm-jupyterhub-svc rm-coding-environment-storage-svc: image: "${REGISTRY}rapidminer-coding-environment-storage:${CES_VERSION}" hostname: rm-coding-environment-storage-svc restart: always environment: - PA_BASE_URL=${PA_BACKEND} - PA_SYNC_DEBUG=False networks: rm-coding-environment-storage-net: aliases: - rm-coding-environment-storage-svc volumes: - rm-coding-shared-vol:/opt/coding-shared/ rm-grafana-svc: image: ${REGISTRY}rapidminer-grafana:${RM_GRAFANA_VERSION} hostname: rm-grafana-svc restart: always environment: - PUBLIC_URL=${PUBLIC_URL} - GRAFANA_URL_SUFFIX=${GRAFANA_URL_SUFFIX} #- GF_LOG_LEVEL=debug - SSO_PUBLIC_URL=${SSO_PUBLIC_URL} - SSO_IDP_REALM=${SSO_IDP_REALM} - SSO_CLIENT_ID=${GRAFANA_SSO_CLIENT_ID} - SSO_CLIENT_SECRET=${GRAFANA_SSO_CLIENT_SECRET} - TZ=${TZ} volumes: - grafana-home:/var/lib/grafana depends_on: - rm-grafana-proxy-svc networks: rm-platform-int-net: aliases: - rm-grafana-svc rm-grafana-proxy-svc: image: ${REGISTRY}rapidminer-grafana-proxy:${RM_GRAFANA_VERSION} hostname: rm-grafana-proxy-svc restart: always environment: - RAPIDMINER_URL=${RAPIDMINER_SERVER_URL} depends_on: - rm-server-svc networks: rm-platform-int-net: aliases: - rm-grafana-proxy-svc rm-tabgo-proxy-svc: image: ${REGISTRY}rapidminer-tabgo-proxy:${TABGO_VERSION} hostname: rm-tabgo-proxy-svc restart: always environment: - HTTPS_CRT_PATH=${HTTPS_CRT_PATH} - HTTPS_KEY_PATH=${HTTPS_KEY_PATH} - TABGO_BACKEND=${TABGO_BACKEND} - TABGO_PORT=${TABGO_PORT} ports: - ${TABGO_PROXY_PORT}:443 depends_on: - rm-proxy-svc volumes: - ./ssl:/etc/nginx/ssl networks: rm-platform-int-net: aliases: - rm-tabgo-proxy-svc rm-tabgo-svc: image: ${REGISTRY}rapidminer-tabgo:${TABGO_VERSION} restart: always hostname: rm-tabgo-svc environment: - TABGO_MAX_MEMORY=${TABGO_MAX_MEMORY} - TABGO_RMS_HOSTNAME=${RAPIDMINER_SERVER_URL} - TABGO_GO_HOSTNAME=${PUBLIC_URL} - TABGO_SMALL_REQUEST_LIMIT=${TABGO_SMALL_REQUEST_LIMIT} - TABGO_SMALL_REQUEST_INTERVAL=${TABGO_SMALL_REQUEST_INTERVAL} - TABGO_LOG_LEVEL=${TABGO_LOG_LEVEL} - _JAVA_OPTIONS=${TABGO_JAVA_OPTIONS} networks: rm-platform-int-net: aliases: - rm-tabgo-svc landing-page: image: ${REGISTRY}rapidminer-deployment-landing-page:${RM_LANDING_VERSION} restart: always hostname: landing-page environment: - SSO_PUBLIC_URL=${SSO_PUBLIC_URL} - SSO_IDP_REALM=${SSO_IDP_REALM} - SSO_CLIENT_ID=${LANDING_SSO_CLIENT_ID} - SSO_CLIENT_SECRET=${LANDING_SSO_CLIENT_SECRET} - DEBUG=false volumes: - rm-landing-page-vol:/var/www/html/uploaded/ - deployed-services-vol:/rapidminer/deployed-services/ networks: rm-platform-int-net: aliases: - landing-page rm-token-tool-svc: image: ${REGISTRY}rapidminer-deployment-landing-page:${RM_LANDING_VERSION} restart: always hostname: rm-token-tool environment: - PUBLIC_URL=${PUBLIC_URL} - SSO_PUBLIC_URL=${SSO_PUBLIC_URL} - SSO_IDP_REALM=${SSO_IDP_REALM} - SSO_CLIENT_ID=${TOKEN_SSO_CLIENT_ID} - SSO_CLIENT_SECRET=${TOKEN_SSO_CLIENT_SECRET} - DEBUG=false - SSO_CUSTOM_SCOPE=openid info offline_access - CUSTOM_URL_SUFFIX=${TOKEN_URL_SUFFIX} - CUSTOM_CONTENT=get-token volumes: - rm-token-tool-vol:/var/www/html/uploaded/ networks: rm-platform-int-net: aliases: - rm-token-tool # ############################################### # # RapidMiner GO # # ############################################### # Frontend and API router rapidminer-automodel-routing: image: rapidminer/rapidminer-automodel-routing:${GO_IMAGE_TAG_ROUTING} hostname: rapidminer-automodel-routing #ports: # - "30000:80" environment: RMID_HOST_PORT_1: ${GO_ROUTING_RMID_HOST_PORT_1} AM_HOST_PORT_1: ${GO_ROUTING_AM_HOST_PORT_1} EVENT_HOST_PORT: ${GO_ROUTING_EVENT_HOST_PORT} RESOLVER: ${GO_ROUTING_RESOLVER} SERVER_NAME: ${GO_ROUTING_SERVER_NAME} PROTOCOL: ${GO_ROUTING_PROTOCOL} depends_on: - rapidminer-automodeler - rapidminer-automodel-rmid restart: always networks: rm-go-proxy-net: aliases: - rapidminer-automodel-routing rm-go-int-net: aliases: - rapidminer-automodel-routing rapidminer-automodel-rmid: image: rapidminer/rapidminer-automodel-rmid:${GO_IMAGE_TAG_RMID} hostname: rapidminer-automodel-rmid environment: SPRING_PROFILES_ACTIVE: ${GO_RMID_SPRING_PROFILES_ACTIVE} DB_HOST: ${GO_DB_HOST} DB_USER: ${GO_RMID_DB_USER} DB_PASSWORD: ${GO_RMID_DB_PASSWORD} DB_NAME: ${GO_RMID_DB_NAME} _JAVA_OPTIONS: ${GO_RMID_JAVA_OPTIONS} BASE_URL: ${PUBLIC_URL} AUTH_SECRET: ${GO_AUTH_SECRET} RMID_FRONTEND_TRACKING_ENABLED: ${GO_RMID_FRONTEND_TRACKING_ENABLED} TOKEN_MAX_AGE: ${GO_RMID_TOKEN_MAX_AGE} LOGIN_TYPE: ${GO_RMID_LOGIN_TYPE} SAML_ENTITY_ID: ${GO_SSO_CLIENT_ID} SAML_KEYSTORE_PASSWORD: ${GO_RMID_SAML_KEYSTORE_PASSWORD} SAML_KEYSTORE_ALIAS: ${GO_RMID_SAML_KEYSTORE_ALIAS} RMID_FRONTEND_AUTO_LOGIN: "true" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/rmid/system/health"] restart: always volumes: - ./go/saml:/rapidminer-automodel-rmid/saml - ./go/branding/rmid:/rapidminer-automodeler/branding depends_on: - rapidminer-automodel-db networks: rm-go-int-net: aliases: - rapidminer-automodel-rmid rapidminer-automodeler: image: rapidminer/rapidminer-automodeler:${GO_IMAGE_TAG_AM} hostname: rapidminer-automodeler environment: SPRING_PROFILES_ACTIVE: ${GO_AUTOMODELER_SPRING_PROFILES_ACTIVE} SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE: ${GO_AUTOMODELER_SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE} _JAVA_OPTIONS: ${GO_AUTOMODELER_JAVA_OPTIONS} DB_HOST: ${GO_DB_HOST} DB_USER: ${GO_AUTOMODELER_DB_USER} DB_PASSWORD: ${GO_AUTOMODELER_DB_PASSWORD} DB_NAME: ${GO_AUTOMODELER_DB_NAME} BASE_URL: ${PUBLIC_URL} RMID_BASE_URL: ${GO_AUTOMODELER_RMID_BASE_URL} AMQ_URL: ${GO_AMQ_URL} AMQ_USERNAME: ${GO_ACTIVEMQ_ADMIN_LOGIN} AMQ_PASSWORD: ${GO_ACTIVEMQ_ADMIN_PASSWORD} AUTH_SECRET: ${GO_AUTH_SECRET} AUTOMODELER_FRONTEND_TRACKING_ENABLED: ${GO_AUTOMODELER_FRONTEND_TRACKING_ENABLED} AUTOMODELER_FILESTORE_MIN_ROW_LIMIT: ${GO_AUTOMODELER_FILESTORE_MIN_ROW_LIMIT} AUTOMODELER_EXECUTION_TASK_LIMIT_PER_USER: ${GO_AUTOMODELER_EXECUTION_TASK_LIMIT_PER_USER} AUTOMODELER_EXECUTION_QUEUE_LIMIT_PER_USER: ${GO_JOB_CONTAINERS} AUTOMODELER_EXECUTION_MAXIMUM_TOTAL_RESULT_SIZE: ${GO_AUTOMODELER_EXECUTION_MAXIMUM_TOTAL_RESULT_SIZE} AUTOMODELER_DATA_IMPORT_MINIMUM_ATTRIBUTE_COUNT: ${GO_AUTOMODELER_DATA_IMPORT_MINIMUM_ATTRIBUTE_COUNT} AUTOMODELER_DATA_IMPORT_MAXIMUM_ATTRIBUTE_COUNT: ${GO_AUTOMODELER_DATA_IMPORT_MAXIMUM_ATTRIBUTE_COUNT} JOB_QUEUE: ${GO_JOB_QUEUE} JOB_STATUS_QUEUE: ${GO_JOB_STATUS_QUEUE} JOB_COMMAND_TOPIC: ${GO_JOB_COMMAND_TOPIC} volumes: - rapidminer_automodel_shared:/rapidminer-automodeler/shared - ./go/licenses:/rapidminer-automodeler/shared/licenses - ./go/branding/am:/rapidminer-automodeler/branding healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/am/system/health"] restart: always depends_on: - rapidminer-automodel-activemq - rapidminer-automodel-db networks: rm-go-int-net: aliases: - rapidminer-automodeler rapidminer-automodel-job-container: image: rapidminer/rapidminer-automodel-job-container:${GO_IMAGE_TAG_JC} hostname: rapidminer-automodel-job-container environment: # Be aware that additional env vars might be set in Dockerfile # (e.g. JOBCONTAINER_BASEDIR: /rapidminer-automodel-job-container) SPRING_PROFILES_ACTIVE: ${GO_JC_SPRING_PROFILES_ACTIVE} _JAVA_OPTIONS: ${GO_JC_JAVA_OPTIONS} JOB_QUEUE: ${GO_JOB_QUEUE} JOB_STATUS_QUEUE: ${GO_JOB_STATUS_QUEUE} JOB_COMMAND_TOPIC: ${GO_JOB_COMMAND_TOPIC} AMQ_URL: ${GO_AMQ_URL} AMQ_REST_URL: ${GO_AMQ_REST_URL} AMQ_USERNAME: ${GO_ACTIVEMQ_ADMIN_LOGIN} AMQ_PASSWORD: ${GO_ACTIVEMQ_ADMIN_PASSWORD} volumes: - rapidminer_automodel_shared:/rapidminer-automodel-job-container/shared - ./go/licenses:/rapidminer-automodel-job-container/shared/licenses depends_on: - rapidminer-automodeler restart: always networks: rm-go-int-net: aliases: - rapidminer-automodel-job-container rapidminer-ui-event-tracking: image: rapidminer/rapidminer-ui-event-tracking:${GO_IMAGE_TAG_ET} hostname: rapidminer-ui-event-tracking environment: _JAVA_OPTIONS: ${GO_ET_JAVA_OPTIONS} DB_HOST: ${GO_DB_HOST} DB_USER: ${GO_AUTOMODELER_DB_USER} DB_PASSWORD: ${GO_AUTOMODELER_DB_PASSWORD} DB_NAME: ${GO_AUTOMODELER_DB_NAME} depends_on: - rapidminer-automodeler restart: always networks: rm-go-int-net: aliases: - rapidminer-ui-event-tracking rapidminer-automodel-db: image: postgres:9.6.6 hostname: rapidminer-automodel-db volumes: - rapidminer_automodel_dbdata:/var/lib/postgresql/data - ./go/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d networks: rm-go-int-net: aliases: - rapidminer-automodel-db environment: AUTOMODELER_DB_USER: ${GO_AUTOMODELER_DB_USER} AUTOMODELER_DB_PASSWORD: ${GO_AUTOMODELER_DB_PASSWORD} AUTOMODELER_DB_NAME: ${GO_AUTOMODELER_DB_NAME} RMID_DB_USER: ${GO_RMID_DB_USER} RMID_DB_PASSWORD: ${GO_RMID_DB_PASSWORD} RMID_DB_NAME: ${GO_RMID_DB_NAME} POSTGRES_PASSWORD: ${GO_POSTGRES_PASSWORD} POSTGRES_USER: ${GO_POSTGRES_USER} #ports: # - "5432:5432" rapidminer-automodel-activemq: image: webcenter/activemq:5.14.3 hostname: rapidminer-automodel-activemq environment: ACTIVEMQ_CONFIG_DEFAULTACCOUNT: ${GO_ACTIVEMQ_CONFIG_DEFAULTACCOUNT} ACTIVEMQ_ADMIN_LOGIN: ${GO_ACTIVEMQ_ADMIN_LOGIN} ACTIVEMQ_ADMIN_PASSWORD: ${GO_ACTIVEMQ_ADMIN_PASSWORD} ACTIVEMQ_JMX_ADMIN_PASSWORD: ${GO_ACTIVEMQ_ADMIN_PASSWORD} ACTIVEMQ_JMX_ADMIN_ROLE: readwrite ACTIVEMQ_GROUPS_owners: 'admin' ACTIVEMQ_CONFIG_MAXMEMORY: ${GO_AMQ_MAXMEMORY} volumes: - ./go/activemq.xml:/opt/activemq/conf/activemq.xml networks: rm-go-int-net: aliases: - rapidminer-automodel-activemq #ports: # - "8161:8161" # - "61616:61616" # - "61613:61613" volumes: rm-postgresql-vol: rm-server-bootstrap-vol: rm-server-home-vol: rm-server-bootstrap-ja-vol: rm-server-ja-log-vol: rm-server-ja-data-vol: platform-admin-uploaded-vol: rts-deployments-vol: rts-licenses-vol: jupyterhub-postgresql-vol: grafana-home: keycloak-postgresql-vol: keycloak-admin-cli-vol: rm-landing-page-vol: rm-token-tool-vol: deployed-services-vol: rm-coding-shared-vol: name: ${JHUB_ENV_VOLUME_NAME} rapidminer_automodel_dbdata: rapidminer_automodel_shared: networks: rm-platform-int-net: rm-idp-db-net: rm-server-db-net: rm-coding-environment-storage-net: jupyterhub-user-net: name: jupyterhub-user-net-${JUPYTER_STACK_NAME} rm-go-int-net: rm-go-proxy-net: