#       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.

web:
  build: .
  environment: &env
    # PATH=/allura-data/virtualenv/bin:$PATH doesn't work; see https://github.com/docker/compose/issues/650
    - PATH=/allura-data/virtualenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  ports:
    - "8080:8080"
  volumes:
    - .:/allura  # Allura source code from local host
    - /allura-data:/allura-data  # for virtualenv, scm repos, etc
  links:
    - mongo
    - solr

taskd:
  image: allura_web
  working_dir: /allura/Allura
  environment: *env
  command: paster taskd docker-dev.ini
  volumes_from:
    - web
  links:
    - mongo
    - solr
    - outmail

solr:
  image: solr:6-alpine  # alpine is a very small distro base
  ports:
    - "8983:8983"
  volumes:
    - ./solr_config/allura:/opt/solr/server/solr/allura
    - /allura-data/solr:/opt/solr/server/solr/allura/data

mongo:
  image: mongo:3.4
  ports:
    - "27017:27017"
  volumes:
    - /allura-data/mongo:/data/db
  command: mongod --storageEngine wiredTiger

outmail:
  image: allura_web
  environment: *env
  volumes_from:
    - web
  command: python -u -m smtpd -n -c alluratest.smtp_debug.BetterDebuggingServer 0.0.0.0:8826
  expose:
    - "8826"

inmail:
  image: allura_web
  working_dir: /allura/Allura
  environment: *env
  command: paster smtp_server docker-dev.ini
  volumes_from:
    - web
  ports:
    - "8825:8825"
  links:
    - mongo

git-http:
  build: scm_config/git-http/
  ports:
    - "8081:80"
  volumes_from:
    - web
  links:
    - mongo
    - web