docker-compose.yml 19 KB

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