version: '2.2' services: web: image: azuracast/azuracast_web:latest # Uncomment the lines below to build this image locally (Developer option) # build: # context: ../docker-azuracast-web depends_on: - mariadb - influxdb - stations - redis environment: &default-environment APPLICATION_ENV: "production" # "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: - www_data:/var/azuracast/www # For development, comment the line above and uncomment the line below. # - .:/var/azuracast/www - tmp_data:/var/azuracast/www_tmp - station_data:/var/azuracast/stations init: true restart: always nginx: image: azuracast/azuracast_nginx:latest # Uncomment the lines below to build this image locally (Developer option) # build: # context: ../docker-azuracast-nginx ports: - '80:80' - '443:443' depends_on: - web - stations volumes: - www_data:/var/azuracast/www # For development, comment the line above and uncomment the line below. # - .:/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 # Uncomment the lines below to build this image locally (Developer option) # build: # context: ../docker-azuracast-db # Uncomment to expose MariaDB to the host computer (for testing only!) # ports: # - "127.0.0.1:3306:3306" volumes: - db_data:/var/lib/mysql environment: << : *default-environment restart: always influxdb: image: azuracast/azuracast_influxdb:latest # Uncomment the lines below to build this image locally (Developer option) # build: # context: ../docker-azuracast-influxdb volumes: - influx_data:/var/lib/influxdb restart: always redis: image: azuracast/azuracast_redis:latest # Uncomment the lines below to build this image locally (Developer option) # build: # context: ../docker-azuracast-redis # Uncomment to expose Redis to the host computer (for testing only!) # 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: image: azuracast/azuracast_web:latest volumes_from: - web depends_on: - mariadb - influxdb - stations - redis environment: << : *default-environment 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 # Enable the lines below to build the image locally (Developer option) # build: # context: ../docker-azuracast-stations ports: # Uncomment the line below to expose the full range of available station ports. # Note: This is not recommended currently due to performance and memory usage problems with Docker. # - '8000-8500:8000-8500' - '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' - '8050:8050' - '8055:8055' - '8056:8056' - '8060:8060' - '8065:8065' - '8066:8066' - '8070:8070' - '8075:8075' - '8076:8076' - '8080:8080' - '8085:8085' - '8086:8086' - '8090:8090' - '8095:8095' - '8096:8096' 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: {} www_data: {} tmp_data: {}