the browser-facing portion of osu!
at master 5.1 kB view raw
1x-env: &x-env 2 APP_KEY: "${APP_KEY}" 3 BEATMAPS_DIFFICULTY_CACHE_SERVER_URL: http://beatmap-difficulty-lookup-cache:8080 4 BROADCAST_DRIVER: redis 5 DB_CONNECTION_STRING: Server=db;Database=osu;Uid=osuweb; 6 DB_HOST: db 7 ES_HOST: http://elasticsearch:9200 8 ES_SOLO_SCORES_HOST: http://elasticsearch:9200 9 GITHUB_TOKEN: "${GITHUB_TOKEN}" 10 NOTIFICATION_REDIS_HOST: redis 11 PASSPORT_PUBLIC_KEY: "${PASSPORT_PUBLIC_KEY:-}" 12 REDIS_HOST: redis 13 14x-web: &x-web 15 build: 16 context: ./docker/development 17 dockerfile: ../../Dockerfile.development 18 init: true 19 volumes: 20 - .:/app 21 environment: 22 <<: *x-env 23 24services: 25 php: 26 <<: *x-web 27 command: ['octane', '--watch'] 28 deploy: 29 restart_policy: 30 condition: on-failure 31 shm_size: '2gb' # for chromium 32 33 php-dusk: 34 <<: *x-web 35 command: ['octane', '--watch'] 36 environment: 37 <<: *x-env 38 APP_ENV: dusk.local 39 OCTANE_STATE_FILE: /tmp/octane-state.json 40 41 assets: 42 <<: *x-web 43 command: ['watch'] 44 45 job: 46 <<: *x-web 47 command: ['job'] 48 49 testjs: 50 <<: *x-web 51 volumes: 52 - .:/app 53 - ./storage/testjs-assets:/app/public/assets 54 - ./storage/testjs-builds:/app/resources/builds 55 profiles: ['testjs'] 56 command: ['test', 'js'] 57 58 schedule: 59 <<: *x-web 60 command: ['schedule'] 61 62 migrator: 63 <<: *x-web 64 command: ['migrate'] 65 depends_on: 66 db: 67 condition: service_healthy 68 69 beatmap-difficulty-lookup-cache: 70 image: pppy/osu-beatmap-difficulty-lookup-cache 71 ports: 72 - "${BEATMAPS_DIFFICULTY_CACHE_EXTERNAL_PORT:-127.0.0.1:5001}:8080" 73 74 notification-server: 75 image: pppy/osu-notification-server 76 depends_on: 77 redis: 78 condition: service_healthy 79 db: 80 condition: service_healthy 81 volumes: 82 - .env:/app/.env 83 - ./storage/oauth-public.key:/app/oauth-public.key 84 environment: 85 <<: *x-env 86 ports: 87 # used by GitHub Actions test 88 - "${NOTIFICATION_EXTERNAL_PORT:-127.0.0.1:2345}:2345" 89 90 notification-server-dusk: 91 image: pppy/osu-notification-server 92 depends_on: 93 redis: 94 condition: service_healthy 95 db: 96 condition: service_healthy 97 volumes: 98 - .env.dusk.local:/app/.env 99 - ./storage/oauth-public.key:/app/oauth-public.key 100 environment: 101 <<: *x-env 102 103 db: 104 image: mysql:8.0 105 volumes: 106 - database:/var/lib/mysql 107 - ./docker/development/db_user.sql:/docker-entrypoint-initdb.d/db_user.sql 108 environment: 109 <<: *x-env 110 MYSQL_ALLOW_EMPTY_PASSWORD: "yes" 111 ports: 112 - "${MYSQL_EXTERNAL_PORT:-127.0.0.1:3306}:3306" 113 healthcheck: 114 # important to use 127.0.0.1 instead of localhost as mysql starts twice. 115 # the first time it listens on sockets but isn't actually ready 116 # see https://github.com/docker-library/mysql/issues/663 117 start_interval: 1s 118 start_period: 60s 119 test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"] 120 timeout: 60s 121 122 redis: 123 command: ['redis-server', '--save', '60', '1', '--loglevel', 'warning'] 124 image: redis:latest 125 ports: 126 - "${REDIS_EXTERNAL_PORT:-127.0.0.1:6379}:6379" 127 healthcheck: 128 start_interval: 1s 129 start_period: 60s 130 test: ["CMD", "redis-cli", "--raw", "incr", "ping"] 131 timeout: 60s 132 volumes: 133 - redis:/data 134 135 elasticsearch: 136 # Version must be kept up to date with library defined in: composer.json 137 image: elasticsearch:7.17.16 138 ports: 139 - "${ES_EXTERNAL_PORT:-127.0.0.1:9200}:9200" 140 volumes: 141 - elasticsearch:/usr/share/elasticsearch/data 142 environment: 143 action.auto_create_index: false 144 discovery.type: single-node 145 ES_JAVA_OPTS: "-Xms512m -Xmx512m" # less OOM on default settings. 146 ingest.geoip.downloader.enabled: false 147 healthcheck: 148 start_interval: 1s 149 start_period: 60s 150 test: curl -s http://localhost:9200/_cluster/health?wait_for_status=yellow >/dev/null || exit 1 151 timeout: 60s 152 153 nginx: 154 image: nginx:latest 155 depends_on: 156 - php 157 - php-dusk 158 - notification-server 159 - notification-server-dusk 160 volumes: 161 - ./docker/development/nginx-default.conf:/etc/nginx/conf.d/default.conf 162 - .:/app 163 ports: 164 - "${NGINX_PORT:-8080}:80" 165 166 score-indexer: 167 image: pppy/osu-elastic-indexer:master 168 command: ["queue", "watch"] 169 depends_on: 170 redis: 171 condition: service_healthy 172 db: 173 condition: service_healthy 174 elasticsearch: 175 condition: service_healthy 176 environment: 177 <<: *x-env 178 SCHEMA: "${SCHEMA:-1}" 179 180 score-indexer-test: 181 image: pppy/osu-elastic-indexer:master 182 command: ["queue", "watch"] 183 depends_on: 184 redis: 185 condition: service_healthy 186 db: 187 condition: service_healthy 188 elasticsearch: 189 condition: service_healthy 190 environment: 191 <<: *x-env 192 # match with .env.testing.example 193 DB_CONNECTION_STRING: Server=db;Database=osu_test;Uid=osuweb; 194 ES_INDEX_PREFIX: test_ 195 SCHEMA: test 196 197volumes: 198 database: 199 elasticsearch: 200 redis: