#       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
  # specialized command (and working_dir) to run broccoli
  # since it depends on files from the shared volume, it can't be run as part of the Dockerfile build :(
  command: >
    sh -c '
    if [ ! -e Allura/allura/public/nf/js/build/transpiled.js ]; then
      npm install &&
      npm run build;
    fi;
    gunicorn --paste Allura/docker-dev.ini --reload
    '
  ports:
    - "8080:8080"
  volumes:
    - .:/allura
    # mount env to allow update and sharing with taskd container
    - /allura-data/env-docker/python:/usr/local/lib/python2.7
    - /allura-data/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
  ports:
    - "27017: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
