docker-compose.yml 19 KB

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