#       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: .
  working_dir: /allura
  command: bash -c 'cd Allura && paster serve docker-dev.ini --reload'
  ports:
    - "8080:8080"
  volumes:
    - .:/allura
    # mount env to allow update and sharing with taskd container
    - env-docker/python:/usr/local/lib/python2.7
    - env-docker/bin:/usr/local/bin
    # mounting it separatelly to create git, svn, hg directories automatically
    - /allura-data/scm/git:/allura-data/scm/git
    - /allura-data/scm/hg:/allura-data/scm/hg
    - /allura-data/scm/svn:/allura-data/scm/svn
    - /allura-data/scm/snapshots:/allura-data/scm/snapshots
  links:
    - mongo
    - solr
    - outmail

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

solr:
  build: solr_config
  working_dir: /solr/solr-4.2.1/example
  command: java -jar start.jar
  ports:
    - "8983:8983"
  volumes:
    - /allura-data/solr:/solr/solr-4.2.1/example/solr/collection1/data

mongo:
  image: mongo:2.6
  expose:
    - "27017"
  volumes:
    - /allura-data/mongo:/data/db
  command: mongod --smallfiles

outmail:
  image: allura_web
  command: python -m smtpd -n -c DebuggingServer 0.0.0.0:8826
  expose:
    - "8826"

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