Advertisement
Guest User

Untitled

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