docker-compose.yml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  1. version: '3'
  2. networks:
  3. frontend:
  4. driver: ${NETWORKS_DRIVER}
  5. backend:
  6. driver: ${NETWORKS_DRIVER}
  7. volumes:
  8. mysql:
  9. driver: ${VOLUMES_DRIVER}
  10. percona:
  11. driver: ${VOLUMES_DRIVER}
  12. mssql:
  13. driver: ${VOLUMES_DRIVER}
  14. postgres:
  15. driver: ${VOLUMES_DRIVER}
  16. memcached:
  17. driver: ${VOLUMES_DRIVER}
  18. redis:
  19. driver: ${VOLUMES_DRIVER}
  20. neo4j:
  21. driver: ${VOLUMES_DRIVER}
  22. mariadb:
  23. driver: ${VOLUMES_DRIVER}
  24. mongo:
  25. driver: ${VOLUMES_DRIVER}
  26. minio:
  27. driver: ${VOLUMES_DRIVER}
  28. rethinkdb:
  29. driver: ${VOLUMES_DRIVER}
  30. phpmyadmin:
  31. driver: ${VOLUMES_DRIVER}
  32. adminer:
  33. driver: ${VOLUMES_DRIVER}
  34. aerospike:
  35. driver: ${VOLUMES_DRIVER}
  36. caddy:
  37. driver: ${VOLUMES_DRIVER}
  38. elasticsearch:
  39. driver: ${VOLUMES_DRIVER}
  40. services:
  41. ### Workspace Utilities ##################################
  42. workspace:
  43. build:
  44. context: ./workspace
  45. args:
  46. - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
  47. - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
  48. - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
  49. - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
  50. - INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
  51. - INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
  52. - INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP}
  53. - INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
  54. - INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
  55. - INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
  56. - NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY}
  57. - INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
  58. - INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
  59. - INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
  60. - INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
  61. - INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
  62. - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
  63. - COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
  64. - INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH}
  65. - INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY}
  66. - INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER}
  67. - INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER}
  68. - INSTALL_PRESTISSIMO=${WORKSPACE_INSTALL_PRESTISSIMO}
  69. - INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW}
  70. - INSTALL_MC=${WORKSPACE_INSTALL_MC}
  71. - INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY}
  72. - INSTALL_PYTHON=${WORKSPACE_INSTALL_PYTHON}
  73. - INSTALL_IMAGE_OPTIMIZERS=${WORKSPACE_INSTALL_IMAGE_OPTIMIZERS}
  74. - INSTALL_IMAGEMAGICK=${WORKSPACE_INSTALL_IMAGEMAGICK}
  75. - INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
  76. - INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
  77. - INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
  78. - INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
  79. - PUID=${WORKSPACE_PUID}
  80. - PGID=${WORKSPACE_PGID}
  81. - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
  82. - NODE_VERSION=${WORKSPACE_NODE_VERSION}
  83. - YARN_VERSION=${WORKSPACE_YARN_VERSION}
  84. - TZ=${WORKSPACE_TIMEZONE}
  85. - BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
  86. - BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
  87. dockerfile: "Dockerfile-${PHP_VERSION}"
  88. volumes:
  89. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  90. extra_hosts:
  91. - "dockerhost:${DOCKER_HOST_IP}"
  92. ports:
  93. - "${WORKSPACE_SSH_PORT}:22"
  94. tty: true
  95. environment:
  96. - PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
  97. networks:
  98. - frontend
  99. - backend
  100. ### PHP-FPM ##############################################
  101. php-fpm:
  102. build:
  103. context: ./php-fpm
  104. args:
  105. - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
  106. - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
  107. - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
  108. - INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
  109. - INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
  110. - INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
  111. - INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
  112. - INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE}
  113. - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
  114. - INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
  115. - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}
  116. - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
  117. - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
  118. - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
  119. - INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
  120. - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
  121. - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
  122. - INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
  123. - INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER}
  124. - INSTALL_INTL=${PHP_FPM_INSTALL_INTL}
  125. - INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT}
  126. - INSTALL_LDAP=${PHP_FPM_INSTALL_LDAP}
  127. - INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
  128. - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
  129. - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
  130. dockerfile: "Dockerfile-${PHP_VERSION}"
  131. volumes:
  132. - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
  133. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  134. expose:
  135. - "9000"
  136. extra_hosts:
  137. - "dockerhost:${DOCKER_HOST_IP}"
  138. environment:
  139. - PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
  140. networks:
  141. - backend
  142. ### PHP Worker ############################################
  143. php-worker:
  144. build:
  145. context: ./php-worker
  146. dockerfile: "Dockerfile-${PHP_VERSION}"
  147. args:
  148. - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
  149. volumes:
  150. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  151. - ./php-worker/supervisord.d:/etc/supervisord.d
  152. depends_on:
  153. - workspace
  154. extra_hosts:
  155. - "dockerhost:${DOCKER_HOST_IP}"
  156. networks:
  157. - backend
  158. ### NGINX Server #########################################
  159. nginx:
  160. build:
  161. context: ./nginx
  162. args:
  163. - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
  164. - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
  165. volumes:
  166. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  167. - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
  168. - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
  169. ports:
  170. - "${NGINX_HOST_HTTP_PORT}:80"
  171. - "${NGINX_HOST_HTTPS_PORT}:443"
  172. depends_on:
  173. - php-fpm
  174. networks:
  175. - frontend
  176. - backend
  177. ### Blackfire ########################################
  178. blackfire:
  179. image: blackfire/blackfire
  180. environment:
  181. - BLACKFIRE_SERVER_ID=${BLACKFIRE_SERVER_ID}
  182. - BLACKFIRE_SERVER_TOKEN=${BLACKFIRE_SERVER_TOKEN}
  183. depends_on:
  184. - php-fpm
  185. networks:
  186. - backend
  187. ### Apache Server ########################################
  188. apache2:
  189. build:
  190. context: ./apache2
  191. args:
  192. - PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER}
  193. - PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
  194. - PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
  195. - DOCUMENT_ROOT=${APACHE_DOCUMENT_ROOT}
  196. volumes:
  197. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  198. - ${APACHE_HOST_LOG_PATH}:/var/log/apache2
  199. - ${APACHE_SITES_PATH}:/etc/apache2/sites-available
  200. ports:
  201. - "${APACHE_HOST_HTTP_PORT}:80"
  202. - "${APACHE_HOST_HTTPS_PORT}:443"
  203. depends_on:
  204. - php-fpm
  205. networks:
  206. - frontend
  207. - backend
  208. ### HHVM #################################################
  209. hhvm:
  210. build: ./hhvm
  211. volumes:
  212. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  213. expose:
  214. - "9000"
  215. depends_on:
  216. - workspace
  217. networks:
  218. - frontend
  219. - backend
  220. ### Minio ################################################
  221. minio:
  222. build: ./minio
  223. volumes:
  224. - ${DATA_PATH_HOST}/minio/data:/export
  225. - ${DATA_PATH_HOST}/minio/config:/root/.minio
  226. ports:
  227. - "${MINIO_PORT}:9000"
  228. environment:
  229. - MINIO_ACCESS_KEY=access
  230. - MINIO_SECRET_KEY=secretkey
  231. networks:
  232. - frontend
  233. - backend
  234. ### MySQL ################################################
  235. mysql:
  236. build:
  237. context: ./mysql
  238. args:
  239. - MYSQL_VERSION=${MYSQL_VERSION}
  240. environment:
  241. - MYSQL_DATABASE=${MYSQL_DATABASE}
  242. - MYSQL_USER=${MYSQL_USER}
  243. - MYSQL_PASSWORD=${MYSQL_PASSWORD}
  244. - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
  245. - TZ=${WORKSPACE_TIMEZONE}
  246. volumes:
  247. - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
  248. - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  249. ports:
  250. - "${MYSQL_PORT}:3306"
  251. networks:
  252. - backend
  253. ### Percona ################################################
  254. percona:
  255. build:
  256. context: ./percona
  257. environment:
  258. - MYSQL_DATABASE=${PERCONA_DATABASE}
  259. - MYSQL_USER=${PERCONA_USER}
  260. - MYSQL_PASSWORD=${PERCONA_PASSWORD}
  261. - MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD}
  262. volumes:
  263. - ${DATA_PATH_HOST}/percona:/var/lib/mysql
  264. - ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  265. ports:
  266. - "${PERCONA_PORT}:3306"
  267. networks:
  268. - backend
  269. ### MSSQL ################################################
  270. mssql:
  271. build:
  272. context: ./mssql
  273. environment:
  274. - MSSQL_DATABASE=${MSSQL_DATABASE}
  275. - SA_PASSWORD=${MSSQL_PASSWORD}
  276. - ACCEPT_EULA=Y
  277. volumes:
  278. - ${DATA_PATH_HOST}/mssql:/var/opt/mssql
  279. ports:
  280. - "${MSSQL_PORT}:1433"
  281. networks:
  282. - backend
  283. ### MariaDB ##############################################
  284. mariadb:
  285. build: ./mariadb
  286. volumes:
  287. - ${DATA_PATH_HOST}/mariadb:/var/lib/mysql
  288. - ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  289. ports:
  290. - "${MARIADB_PORT}:3306"
  291. environment:
  292. - MYSQL_DATABASE=${MARIADB_DATABASE}
  293. - MYSQL_USER=${MARIADB_USER}
  294. - MYSQL_PASSWORD=${MARIADB_PASSWORD}
  295. - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
  296. networks:
  297. - backend
  298. ### PostgreSQL ###########################################
  299. postgres:
  300. build: ./postgres
  301. volumes:
  302. - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
  303. ports:
  304. - "${POSTGRES_PORT}:5432"
  305. environment:
  306. - POSTGRES_DB=${POSTGRES_DB}
  307. - POSTGRES_USER=${POSTGRES_USER}
  308. - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
  309. networks:
  310. - backend
  311. ### PostgreSQL PostGis ###################################
  312. postgres-postgis:
  313. build: ./postgres-postgis
  314. volumes:
  315. - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
  316. ports:
  317. - "${POSTGRES_PORT}:5432"
  318. environment:
  319. - POSTGRES_DB=${POSTGRES_DB}
  320. - POSTGRES_USER=${POSTGRES_USER}
  321. - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
  322. networks:
  323. - backend
  324. ### Neo4j ################################################
  325. neo4j:
  326. build: ./neo4j
  327. ports:
  328. - "7474:7474"
  329. - "1337:1337"
  330. environment:
  331. - NEO4J_AUTH=default:secret
  332. volumes:
  333. - ${DATA_PATH_HOST}/neo4j:/var/lib/neo4j/data
  334. networks:
  335. - backend
  336. ### MongoDB ##############################################
  337. mongo:
  338. build: ./mongo
  339. ports:
  340. - "${MONGODB_PORT}:27017"
  341. volumes:
  342. - ${DATA_PATH_HOST}/mongo:/data/db
  343. networks:
  344. - backend
  345. ### RethinkDB ##############################################
  346. rethinkdb:
  347. build: ./rethinkdb
  348. ports:
  349. - "${RETHINKDB_PORT}:8080"
  350. volumes:
  351. - ${DATA_PATH_HOST}/rethinkdb:/data/rethinkdb_data
  352. networks:
  353. - backend
  354. ### Redis ################################################
  355. redis:
  356. build: ./redis
  357. volumes:
  358. - ${DATA_PATH_HOST}/redis:/data
  359. ports:
  360. - "${REDIS_PORT}:6379"
  361. networks:
  362. - backend
  363. ### Aerospike ##########################################
  364. aerospike:
  365. build: ./aerospike
  366. volumes:
  367. - workspace
  368. - ${DATA_PATH_HOST}/aerospike:/opt/aerospike/data
  369. ports:
  370. - "${AEROSPIKE_SERVICE_PORT}:3000"
  371. - "${AEROSPIKE_FABRIC_PORT}:3001"
  372. - "${AEROSPIKE_HEARTBEAT_PORT}:3002"
  373. - "${AEROSPIKE_INFO_PORT}:3003"
  374. networks:
  375. - backend
  376. ### Memcached ############################################
  377. memcached:
  378. build: ./memcached
  379. volumes:
  380. - ${DATA_PATH_HOST}/memcached:/var/lib/memcached
  381. ports:
  382. - "${MEMCACHED_HOST_PORT}:11211"
  383. depends_on:
  384. - php-fpm
  385. networks:
  386. - backend
  387. ### Beanstalkd ###########################################
  388. beanstalkd:
  389. build: ./beanstalkd
  390. ports:
  391. - "${BEANSTALKD_HOST_PORT}:11300"
  392. privileged: true
  393. depends_on:
  394. - php-fpm
  395. networks:
  396. - backend
  397. ### RabbitMQ #############################################
  398. rabbitmq:
  399. build: ./rabbitmq
  400. ports:
  401. - "${RABBITMQ_NODE_HOST_PORT}:5672"
  402. - "${RABBITMQ_MANAGEMENT_HTTP_HOST_PORT}:15672"
  403. - "${RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT}:15671"
  404. privileged: true
  405. environment:
  406. - RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER}
  407. - RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}
  408. depends_on:
  409. - php-fpm
  410. networks:
  411. - backend
  412. ### Beanstalkd Console ###################################
  413. beanstalkd-console:
  414. build: ./beanstalkd-console
  415. ports:
  416. - "${BEANSTALKD_CONSOLE_HOST_PORT}:2080"
  417. depends_on:
  418. - beanstalkd
  419. networks:
  420. - backend
  421. ### Caddy Server #########################################
  422. caddy:
  423. build: ./caddy
  424. volumes:
  425. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  426. - ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
  427. - ${CADDY_HOST_LOG_PATH}:/var/log/caddy
  428. - ${DATA_PATH_HOST}:/root/.caddy
  429. ports:
  430. - "${CADDY_HOST_HTTP_PORT}:80"
  431. - "${CADDY_HOST_HTTPS_PORT}:443"
  432. depends_on:
  433. - php-fpm
  434. networks:
  435. - frontend
  436. - backend
  437. ### phpMyAdmin ###########################################
  438. phpmyadmin:
  439. build: ./phpmyadmin
  440. environment:
  441. - PMA_ARBITRARY=1
  442. - MYSQL_USER=${PMA_USER}
  443. - MYSQL_PASSWORD=${PMA_PASSWORD}
  444. - MYSQL_ROOT_PASSWORD=${PMA_ROOT_PASSWORD}
  445. ports:
  446. - "${PMA_PORT}:80"
  447. depends_on:
  448. - "${PMA_DB_ENGINE}"
  449. networks:
  450. - frontend
  451. - backend
  452. ### Adminer ###########################################
  453. adminer:
  454. build:
  455. context: ./adminer
  456. args:
  457. - INSTALL_MSSQL=${ADM_INSTALL_MSSQL}
  458. ports:
  459. - "${ADM_PORT}:8080"
  460. depends_on:
  461. - php-fpm
  462. networks:
  463. - frontend
  464. - backend
  465. ### pgAdmin ##############################################
  466. pgadmin:
  467. build: ./pgadmin
  468. ports:
  469. - "5050:5050"
  470. volumes:
  471. - ${DATA_PATH_HOST}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
  472. depends_on:
  473. - postgres
  474. networks:
  475. - frontend
  476. - backend
  477. ### ElasticSearch ########################################
  478. elasticsearch:
  479. build: ./elasticsearch
  480. volumes:
  481. - elasticsearch:/usr/share/elasticsearch/data
  482. environment:
  483. - cluster.name=laradock-cluster
  484. - bootstrap.memory_lock=true
  485. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  486. ulimits:
  487. memlock:
  488. soft: -1
  489. hard: -1
  490. ports:
  491. - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
  492. - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
  493. depends_on:
  494. - php-fpm
  495. networks:
  496. - frontend
  497. - backend
  498. ### Kibana ##############################################
  499. kibana:
  500. build: ./kibana
  501. ports:
  502. - "${KIBANA_HTTP_PORT}:5601"
  503. depends_on:
  504. - elasticsearch
  505. networks:
  506. - frontend
  507. - backend
  508. ### Certbot #########################################
  509. certbot:
  510. build:
  511. context: ./certbot
  512. volumes:
  513. - ./data/certbot/certs/:/var/certs
  514. - ./certbot/letsencrypt/:${APP_CODE_PATH_CONTAINER}/letsencrypt
  515. environment:
  516. - CN="fake.domain.com"
  517. - EMAIL="fake.email@gmail.com"
  518. networks:
  519. - frontend
  520. ### Mailhog ################################################
  521. mailhog:
  522. build: ./mailhog
  523. ports:
  524. - "1025:1025"
  525. - "8025:8025"
  526. networks:
  527. - frontend
  528. - backend
  529. ### MailDev ##############################################
  530. maildev:
  531. build: ./maildev
  532. ports:
  533. - "${MAILDEV_HTTP_PORT}:80"
  534. - "${MAILDEV_SMTP_PORT}:25"
  535. networks:
  536. - frontend
  537. - backend
  538. ### Selenium ###############################################
  539. selenium:
  540. build: ./selenium
  541. ports:
  542. - "${SELENIUM_PORT}:4444"
  543. volumes:
  544. - /dev/shm:/dev/shm
  545. networks:
  546. - frontend
  547. ### Varnish ##########################################
  548. proxy:
  549. build: ./varnish
  550. expose:
  551. - ${VARNISH_PORT}
  552. environment:
  553. - VARNISH_CONFIG=${VARNISH_CONFIG}
  554. - CACHE_SIZE=${VARNISH_PROXY1_CACHE_SIZE}
  555. - VARNISHD_PARAMS=${VARNISHD_PARAMS}
  556. - VARNISH_PORT=${VARNISH_PORT}
  557. - BACKEND_HOST=${VARNISH_PROXY1_BACKEND_HOST}
  558. - BACKEND_PORT=${VARNISH_BACKEND_PORT}
  559. - VARNISH_SERVER=${VARNISH_PROXY1_SERVER}
  560. links:
  561. - workspace
  562. networks:
  563. - frontend
  564. proxy2:
  565. build: ./varnish
  566. expose:
  567. - ${VARNISH_PORT}
  568. environment:
  569. - VARNISH_CONFIG=${VARNISH_CONFIG}
  570. - CACHE_SIZE=${VARNISH_PROXY2_CACHE_SIZE}
  571. - VARNISHD_PARAMS=${VARNISHD_PARAMS}
  572. - VARNISH_PORT=${VARNISH_PORT}
  573. - BACKEND_HOST=${VARNISH_PROXY2_BACKEND_HOST}
  574. - BACKEND_PORT=${VARNISH_BACKEND_PORT}
  575. - VARNISH_SERVER=${VARNISH_PROXY2_SERVER}
  576. links:
  577. - workspace
  578. networks:
  579. - frontend
  580. ### HAProxy ####################################
  581. haproxy:
  582. build: ./haproxy
  583. ports:
  584. - "${HAPROXY_HOST_HTTP_PORT}:8085"
  585. volumes:
  586. - /var/run/docker.sock:/var/run/docker.sock
  587. links:
  588. - proxy
  589. - proxy2
  590. ### Jenkins ###################################################
  591. jenkins:
  592. build: ./jenkins
  593. environment:
  594. JAVA_OPTS: "-Djava.awt.headless=true"
  595. ports:
  596. - "${JENKINS_HOST_SLAVE_AGENT_PORT}:50000"
  597. - "${JENKINS_HOST_HTTP_PORT}:8080"
  598. privileged: true
  599. volumes:
  600. - ${JENKINS_HOME}:/var/jenkins_home
  601. - /var/run/docker.sock:/var/run/docker.sock
  602. networks:
  603. - frontend
  604. - backend
  605. ### Grafana ################################################
  606. grafana:
  607. build:
  608. context: ./grafana
  609. volumes:
  610. - ${DATA_PATH_HOST}/grafana:/var/lib/grafana
  611. ports:
  612. - "${GRAFANA_PORT}:3000"
  613. networks:
  614. - backend
  615. ### Laravel Echo Server #######################################
  616. laravel-echo-server:
  617. build:
  618. context: ./laravel-echo-server
  619. volumes:
  620. - ./laravel-echo-server/laravel-echo-server.json:/app/laravel-echo-server.json:ro
  621. ports:
  622. - "${LARAVEL_ECHO_SERVER_PORT}:6001"
  623. links:
  624. - redis
  625. networks:
  626. - frontend
  627. - backend
  628. ### Solr ################################################
  629. solr:
  630. build:
  631. context: ./solr
  632. args:
  633. - SOLR_VERSION=${SOLR_VERSION}
  634. - SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
  635. volumes:
  636. - ${DATA_PATH_HOST}/solr:/opt/solr/server/solr/mycores
  637. ports:
  638. - "${SOLR_PORT}:8983"
  639. networks:
  640. - backend
  641. ### AWS EB-CLI ################################################
  642. aws:
  643. build:
  644. context: ./aws
  645. volumes:
  646. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  647. depends_on:
  648. - workspace
  649. tty: true