docker-compose.yml 18 KB

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