blob: ec91fabdf514752951aee9422e7538eea2d646db [file] [log] [blame]
networks:
airavata-network:
driver: bridge
name: airavata.host
ipam:
config:
- subnet: 192.168.100.0/24
gateway: 192.168.100.1
volumes:
db_data:
driver: local
services:
devcontainer:
profiles:
- development
build:
dockerfile: Dockerfile
target: deps
container_name: devcontainer
restart: always
volumes:
- ..:/home/developer/workspace:cached
- $HOME/.m2:/home/developer/.m2
- $HOME/.ssh:/home/developer/.ssh
networks:
airavata-network:
ipv4_address: 192.168.100.9
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "7878:7878" # sharing registry service
- "8000:8000" # tunnel service
- "17000:17000" # tunnel service (ingress)
- "8050:8050" # file service
- "8082:8082" # rest proxy
- "8930:8930" # api service
- "8960:8960" # cred store service
- "8962:8962" # profile service
- "8970:8970" # registry service
- "18800:18800" # agent service (http)
- "19900:19900" # agent service (gRPC)
- "18889:18889" # research service (http)
- "19908:19908" # research service (gRPC)
command: sleep infinity
microservices:
profiles:
- staging
build:
dockerfile: Dockerfile
target: runner
container_name: microservices
restart: always
volumes:
- ../vault:/app/vault
networks:
airavata-network:
ipv4_address: 192.168.100.9
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "7878:7878" # sharing registry service
- "8000:8000" # tunnel service
- "17000:17000" # tunnel service (ingress)
- "8050:8050" # file service
- "8930:8930" # api service
- "8960:8960" # cred store service
- "8962:8962" # profile service
- "8970:8970" # registry service
- "18800:18800" # agent service (http)
- "19900:19900" # agent service (gRPC)
- "18889:18889" # research service (http)
- "19908:19908" # research service (gRPC)
depends_on:
- db
- kafka
- keycloak
- rabbitmq
- sshd
portals:
profiles:
- development
- staging
build:
context: portals
dockerfile: Dockerfile
container_name: portals
restart: always
volumes:
- /tmp:/tmp
- ./portals/pga_config.php:/var/www/html/default/config/pga_config.php
networks:
airavata-network:
ipv4_address: 192.168.100.11
extra_hosts:
- "airavata.host:192.168.100.1"
jupyterhub:
profiles:
- development
- staging
build:
context: ../modules/research-framework/research-hub/compose
dockerfile: Dockerfile
container_name: jupyterhub
restart: always
environment:
OAUTH_CLIENT_ID: "cs-jupyterlab"
OAUTH_CLIENT_SECRET: "DxeMtfiWU1qkDEmaGHf13RDahCujzhy1"
JUPYTERHUB_CRYPT_KEY: "a99323294a5d6f9b1d0e7e33450dff44db664264231b985e069c6eba8f9a3e09"
DOCKER_NETWORK_NAME: jupyterhub_network
DOCKER_NOTEBOOK_IMAGE: cybershuttle/dev_jupyterlab-base
volumes:
- ../modules/research-framework/research-hub/compose/jupyterhub_config.py:/srv/jupyterhub/jupyterhub_config.py
- /var/run/docker.sock:/var/run/docker.sock
networks:
airavata-network:
ipv4_address: 192.168.100.12
extra_hosts:
- "airavata.host:192.168.100.1"
proxy:
image: nginx:stable
container_name: proxy
restart: always
volumes:
- ../vault.local/server.key:/vault/server.key:ro
- ../vault.local/server.crt:/vault/server.crt:ro
- ./proxy/nginx.conf:/etc/nginx/nginx.conf:ro
- ./proxy/http.conf:/etc/nginx/conf.d/http.conf:ro
- ./proxy/stream.conf:/etc/nginx/conf.d/stream.conf:ro
networks:
airavata-network:
ipv4_address: 192.168.100.13
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "5173:5173" # tls + research portal
- "8008:8008" # tls + php portal
- "8009:8009" # tls + django portal
- "8443:8443" # tls + keycloak
- "9930:9930" # tls + api
- "20000:20000" # tls + jupyterhub
keycloak:
image: keycloak/keycloak:25.0
container_name: keycloak
restart: always
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
volumes:
- ./keycloak/realm-default.json:/opt/keycloak/data/import/realm-default.json
- ./keycloak/keycloak.conf:/opt/keycloak/conf/keycloak.conf
command: [ "start", "--import-realm" ]
networks:
airavata-network:
ipv4_address: 192.168.100.14
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "18080:18080"
db:
image: mariadb:10.4.13
container_name: db
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_USER: airavata
MYSQL_PASSWORD: 123456
volumes:
- ./database_scripts/init:/docker-entrypoint-initdb.d
- db_data:/var/lib/mysql
command:
[
"mysqld",
"--character-set-server=utf8mb4",
"--collation-server=utf8mb4_unicode_ci",
"--sql-mode=NO_ENGINE_SUBSTITUTION",
]
networks:
airavata-network:
ipv4_address: 192.168.100.15
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "13306:3306"
rabbitmq:
image: rabbitmq:4.0-management
container_name: rabbitmq
restart: always
environment:
RABBITMQ_DEFAULT_VHOST: develop
networks:
airavata-network:
ipv4_address: 192.168.100.16
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "5672:5672"
- "15672:15672"
zookeeper:
image: zookeeper:latest
container_name: zookeeper
restart: always
networks:
airavata-network:
ipv4_address: 192.168.100.17
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka:latest
container_name: kafka
restart: always
environment:
KAFKA_ADVERTISED_HOST_NAME: airavata.host
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
networks:
airavata-network:
ipv4_address: 192.168.100.18
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "9092:9092"
depends_on:
- zookeeper
sshd:
image: panubo/sshd
container_name: sshd
restart: always
volumes:
- /tmp:/tmp
networks:
airavata-network:
ipv4_address: 192.168.100.20
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "22222:22"
adminer:
image: adminer:latest
container_name: adminer
restart: always
networks:
airavata-network:
ipv4_address: 192.168.100.21
extra_hosts:
- "airavata.host:192.168.100.1"
ports:
- "18088:8080"
depends_on:
- db