# Licensed 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: "3.9"
services:
  transform-service:
    image: "apache/beam_transform_service_controller:${BEAM_VERSION}"
    restart: on-failure
    command: -port 5001
    ports:
      - "${TRANSFORM_SERVICE_PORT}:5001"
    depends_on:
      - expansion-service-1
      - expansion-service-2
  expansion-service-1:
    image: "apache/beam_java_expansion_service:${BEAM_VERSION}"
    restart: on-failure
    command: -id expansion-service-1 -port 5001
    volumes:
      - ${CREDENTIALS_VOLUME}:/credentials_volume
    environment:
      - GOOGLE_APPLICATION_CREDENTIALS=/credentials_volume/${GOOGLE_APPLICATION_CREDENTIALS_FILE_NAME}
  expansion-service-2:
    image: "apache/beam_python_expansion_service:${BEAM_VERSION}"
    restart: on-failure
    command: -id expansion-service-2 -port 5001 -requirements_file ${PYTHON_REQUIREMENTS_FILE_NAME} -dependencies_dir '/dependencies_volume'
    volumes:
      - ${CREDENTIALS_VOLUME}:/credentials_volume
      - ${DEPENDENCIES_VOLUME}:/dependencies_volume
    environment:
      - GOOGLE_APPLICATION_CREDENTIALS=/credentials_volume/${GOOGLE_APPLICATION_CREDENTIALS_FILE_NAME}
