blob: a6c38925e31cd991e53ea9c863d16ea745bdbaf0 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
version: "2"
services:
redis:
image: redis:7.0.4-alpine
ports:
- "6379:6379"
datastore:
build: "./backend/containers/router/datastore"
environment:
DATASTORE_PROJECT_ID: test
DATASTORE_LISTEN_ADDRESS: 0.0.0.0:8081
ports:
- "8081:8081"
cleanup_snippets:
build:
context: ./backend
dockerfile: ./playground_functions/Dockerfile
environment:
GOOGLE_CLOUD_PROJECT: test
DATASTORE_EMULATOR_HOST: datastore:8081
FUNCTION_TARGET: cleanupSnippets
expose:
- "8080"
depends_on:
- datastore
put_snippet:
build:
context: ./backend
dockerfile: ./playground_functions/Dockerfile
environment:
GOOGLE_CLOUD_PROJECT: test
DATASTORE_EMULATOR_HOST: datastore:8081
FUNCTION_TARGET: putSnippet
expose:
- "8080"
depends_on:
- datastore
increment_snippet_views:
build:
context: ./backend
dockerfile: ./playground_functions/Dockerfile
environment:
GOOGLE_CLOUD_PROJECT: test
DATASTORE_EMULATOR_HOST: datastore:8081
FUNCTION_TARGET: incrementSnippetViews
expose:
- "8080"
depends_on:
- datastore
router:
image: apache/beam_playground-backend-router
environment:
GOOGLE_CLOUD_PROJECT: test
DATASTORE_EMULATOR_HOST: datastore:8081
CACHE_TYPE: remote
CACHE_ADDRESS: redis:6379
SDK_CONFIG: /opt/playground/backend/sdks-emulator.yaml
SERVER_PORT: 8082
APPLY_MIGRATIONS: "True"
ports:
- "8082:8082"
depends_on:
- redis
- datastore
- increment_snippet_views
- put_snippet
- cleanup_snippets
go_runner:
image: apache/beam_playground-backend-go
environment:
GOOGLE_CLOUD_PROJECT: test
CACHE_TYPE: remote
CACHE_ADDRESS: redis:6379
SERVER_PORT: 8084
ports:
- "8084:8084"
depends_on:
- redis
java_runner:
image: apache/beam_playground-backend-java
environment:
GOOGLE_CLOUD_PROJECT: test
CACHE_TYPE: remote
CACHE_ADDRESS: redis:6379
SERVER_PORT: 8086
ports:
- "8086:8086"
depends_on:
- redis
python_runner:
image: apache/beam_playground-backend-python
environment:
GOOGLE_CLOUD_PROJECT: test
CACHE_TYPE: remote
CACHE_ADDRESS: redis:6379
SERVER_PORT: 8088
ports:
- "8088:8088"
depends_on:
- redis
scio_runner:
image: apache/beam_playground-backend-scio
environment:
GOOGLE_CLOUD_PROJECT: test
CACHE_TYPE: remote
CACHE_ADDRESS: redis:6379
SERVER_PORT: 8090
ports:
- "8090:8090"
depends_on:
- redis
# Impose limits on container to better mimic real deployment environment
mem_limit: 2048M
ulimits:
rss: 1073741824
frontend:
image: apache/beam_playground-frontend
ports:
- "1234:8080"
depends_on:
- router