# 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:
  c2:
    image: apacheminific2:${minifi.c2.version}
    ports:
      - "10080"
    hostname: c2
    volumes:
      - ./c2-unsecure-rest/conf/minifi-c2-context.xml:/opt/minifi-c2/minifi-c2-${minifi.c2.version}/conf/minifi-c2-context.xml
  mocknifi:
    image: python:2
    ports:
      - "8080"
    hostname: mocknifi
    volumes:
      - ./mocknifi-unsecure/server.py:/root/server.py
      - ./mocknifi/www:/var/www
    working_dir: /var/www
    entrypoint:
      - python
      - /root/server.py