version: '3'

services:
  postgres:
    container_name: mobilizon_db
    restart: unless-stopped
    image: mdillon/postgis:11
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: mobilizon_dev
    volumes:
      - pgdata:/var/lib/postgresql/data
  api:
    container_name: mobilizon_api
    restart: unless-stopped
    build: .
    volumes:
      - '.:/app'
    ports:
      - "4000:4000"
    depends_on:
      - postgres
    environment:
      MIX_ENV: "dev"
      DOCKER: "true"
      MOBILIZON_INSTANCE_NAME: My Mobilizon Instance
      MOBILIZON_INSTANCE_HOST: mobilizon.me
      MOBILIZON_INSTANCE_EMAIL: noreply@mobilizon.me
      MOBILIZON_INSTANCE_REGISTRATIONS_OPEN: "true"
      MOBILIZON_DATABASE_PASSWORD: postgres
      MOBILIZON_DATABASE_USERNAME: postgres
      MOBILIZON_DATABASE_DBNAME: mobilizon_dev
      MOBILIZON_DATABASE_HOST: postgres
    command: >
      sh -c "cd js &&
      yarn install &&
      cd ../ &&
      mix deps.get &&
      mix compile &&
      mix ecto.create &&
      mix ecto.migrate &&
      mix phx.server"
volumes:
  pgdata:
  .: