From 2af295c6f36d762cf4fb835692433c90b009f493 Mon Sep 17 00:00:00 2001 From: "Buster \"Silver Eagle\" Neece" Date: Tue, 10 Jul 2018 13:59:31 -0500 Subject: [PATCH] Create new local-dev-specific docker-compose file for easy spinup --- docker-compose.dev.yml | 167 ++++++++++++++++++++++++++++++++++++++ docker-compose.sample.yml | 43 +--------- 2 files changed, 168 insertions(+), 42 deletions(-) create mode 100644 docker-compose.dev.yml diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 000000000..056181c80 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,167 @@ +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: + image: azuracast/azuracast_web:latest + 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: {} diff --git a/docker-compose.sample.yml b/docker-compose.sample.yml index f353238bb..b79cfc6a8 100644 --- a/docker-compose.sample.yml +++ b/docker-compose.sample.yml @@ -3,9 +3,6 @@ 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 @@ -22,8 +19,6 @@ services: 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 @@ -31,9 +26,6 @@ services: 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' @@ -42,8 +34,6 @@ services: - 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 @@ -59,12 +49,6 @@ services: 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: @@ -73,21 +57,12 @@ services: 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: @@ -126,9 +101,6 @@ services: 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. @@ -169,19 +141,6 @@ services: 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: {} @@ -189,4 +148,4 @@ volumes: influx_data: {} station_data: {} www_data: {} - tmp_data: {} \ No newline at end of file + tmp_data: {}