version: '2.2' services: web: image: azuracast/azuracast_web:latest build: context: ../docker-azuracast-web depends_on: - mariadb - influxdb - stations - redis environment: &default-environment APPLICATION_ENV: "development" # "production" or "development" MYSQL_HOST: "mariadb" # You can change this if you plan to connect to an external DB host. MYSQL_PORT: 3306 # ^ MYSQL_USER: "azuracast" # Once the database has been installed, don't change this. MYSQL_PASSWORD: "azur4c457" # ^ MYSQL_DATABASE: "azuracast" # ^ MYSQL_RANDOM_ROOT_PASSWORD: "yes" AZURACAST_DC_REVISION: 2 # Only modified when this Docker Compose file has changed. volumes: - .:/var/azuracast/www - tmp_data:/var/azuracast/www_tmp - station_data:/var/azuracast/stations init: true restart: always nginx: image: azuracast/azuracast_nginx:latest build: context: ../docker-azuracast-nginx ports: - '80:80' - '443:443' depends_on: - web - stations volumes: - .:/var/azuracast/www - nginx_letsencrypt_certs:/etc/nginx/ssl - nginx_letsencrypt_www:/var/www/letsencrypt restart: always # To use the LetsEncrypt support: # docker-compose run --rm letsencrypt certonly --webroot -w /var/www/letsencrypt letsencrypt: image: certbot/certbot command: /bin/true volumes: - nginx_letsencrypt_certs:/etc/letsencrypt - nginx_letsencrypt_www:/var/www/letsencrypt mariadb: image: azuracast/azuracast_db:latest build: context: ../docker-azuracast-db ports: - "127.0.0.1:3306:3306" volumes: - db_data:/var/lib/mysql environment: << : *default-environment restart: always influxdb: image: azuracast/azuracast_influxdb:latest build: context: ../docker-azuracast-influxdb volumes: - influx_data:/var/lib/influxdb restart: always redis: image: azuracast/azuracast_redis:latest build: context: ../docker-azuracast-redis ports: - "127.0.0.1:6379:6379" restart: always cron: container_name: azuracast_cron image: azuracast/azuracast_web:latest volumes_from: - web depends_on: - mariadb - influxdb - stations - redis environment: << : *default-environment command: 'cron' init: true restart: always cli: build: context: ./util/docker/testing volumes_from: - web depends_on: - mariadb - influxdb - stations - redis environment: << : *default-environment INIT_BASE_URL: "docker.local" INIT_GMAPS_API_KEY: "" # Populate this! INIT_INSTANCE_NAME: "local development" INIT_ADMIN_USERNAME: "" # Populate this! INIT_ADMIN_PASSWORD: "" # Populate this! INIT_MUSIC_PATH: "/var/azuracast/www/util/fixtures/init_music" user: 'azuracast' working_dir: '/var/azuracast/www' command: 'bash' tty: true # Pretty colors init: true stations: container_name: azuracast_stations image: azuracast/azuracast_stations:latest build: context: ../docker-azuracast-stations ports: - '8000:8000' - '8005:8005' - '8006:8006' - '8010:8010' - '8015:8015' - '8016:8016' - '8020:8020' - '8025:8025' - '8026:8026' - '8030:8030' - '8035:8035' - '8036:8036' - '8040:8040' - '8045:8045' - '8046:8046' volumes: - station_data:/var/azuracast/stations - nginx_letsencrypt_certs:/etc/nginx/ssl:ro init: true restart: always # Developer Mode services static: build: context: ./util/docker/static volumes: - ./web/static:/data chronograf: image: chronograf:alpine ports: - "8888:8888" command: "chronograf --influxdb-url=http://influxdb:8086" volumes: nginx_letsencrypt_certs: {} nginx_letsencrypt_www: {} db_data: {} influx_data: {} station_data: {} tmp_data: {}