Advertisement
samuhs

docker-composer.yml

Sep 15th, 2018
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.02 KB | None | 0 0
  1. version: '3'
  2.  
  3. networks:
  4. frontend:
  5. driver: ${NETWORKS_DRIVER}
  6. backend:
  7. driver: ${NETWORKS_DRIVER}
  8.  
  9. volumes:
  10. mysql:
  11. driver: ${VOLUMES_DRIVER}
  12. percona:
  13. driver: ${VOLUMES_DRIVER}
  14. mssql:
  15. driver: ${VOLUMES_DRIVER}
  16. postgres:
  17. driver: ${VOLUMES_DRIVER}
  18. memcached:
  19. driver: ${VOLUMES_DRIVER}
  20. redis:
  21. driver: ${VOLUMES_DRIVER}
  22. neo4j:
  23. driver: ${VOLUMES_DRIVER}
  24. mariadb:
  25. driver: ${VOLUMES_DRIVER}
  26. mongo:
  27. driver: ${VOLUMES_DRIVER}
  28. minio:
  29. driver: ${VOLUMES_DRIVER}
  30. rethinkdb:
  31. driver: ${VOLUMES_DRIVER}
  32. phpmyadmin:
  33. driver: ${VOLUMES_DRIVER}
  34. adminer:
  35. driver: ${VOLUMES_DRIVER}
  36. aerospike:
  37. driver: ${VOLUMES_DRIVER}
  38. caddy:
  39. driver: ${VOLUMES_DRIVER}
  40. elasticsearch:
  41. driver: ${VOLUMES_DRIVER}
  42.  
  43. services:
  44.  
  45. ### Workspace Utilities ##################################
  46. workspace:
  47. build:
  48. context: ./workspace
  49. args:
  50. - LARADOCK_PHP_VERSION=${PHP_VERSION}
  51. - INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
  52. - INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
  53. - INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG}
  54. - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
  55. - INSTALL_SSH2=${WORKSPACE_INSTALL_SSH2}
  56. - INSTALL_GMP=${WORKSPACE_INSTALL_GMP}
  57. - INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
  58. - INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
  59. - INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
  60. - INSTALL_MONGO=${WORKSPACE_INSTALL_MONGO}
  61. - INSTALL_AMQP=${WORKSPACE_INSTALL_AMQP}
  62. - INSTALL_PHPREDIS=${WORKSPACE_INSTALL_PHPREDIS}
  63. - INSTALL_MSSQL=${WORKSPACE_INSTALL_MSSQL}
  64. - INSTALL_NODE=${WORKSPACE_INSTALL_NODE}
  65. - NPM_REGISTRY=${WORKSPACE_NPM_REGISTRY}
  66. - INSTALL_YARN=${WORKSPACE_INSTALL_YARN}
  67. - INSTALL_NPM_GULP=${WORKSPACE_INSTALL_NPM_GULP}
  68. - INSTALL_NPM_BOWER=${WORKSPACE_INSTALL_NPM_BOWER}
  69. - INSTALL_NPM_VUE_CLI=${WORKSPACE_INSTALL_NPM_VUE_CLI}
  70. - INSTALL_DRUSH=${WORKSPACE_INSTALL_DRUSH}
  71. - INSTALL_DRUPAL_CONSOLE=${WORKSPACE_INSTALL_DRUPAL_CONSOLE}
  72. - INSTALL_AEROSPIKE=${WORKSPACE_INSTALL_AEROSPIKE}
  73. - AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
  74. - INSTALL_V8JS=${WORKSPACE_INSTALL_V8JS}
  75. - COMPOSER_GLOBAL_INSTALL=${WORKSPACE_COMPOSER_GLOBAL_INSTALL}
  76. - COMPOSER_REPO_PACKAGIST=${WORKSPACE_COMPOSER_REPO_PACKAGIST}
  77. - INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH}
  78. - INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY}
  79. - INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER}
  80. - INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER}
  81. - INSTALL_PRESTISSIMO=${WORKSPACE_INSTALL_PRESTISSIMO}
  82. - INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW}
  83. - INSTALL_MC=${WORKSPACE_INSTALL_MC}
  84. - INSTALL_SYMFONY=${WORKSPACE_INSTALL_SYMFONY}
  85. - INSTALL_PYTHON=${WORKSPACE_INSTALL_PYTHON}
  86. - INSTALL_IMAGE_OPTIMIZERS=${WORKSPACE_INSTALL_IMAGE_OPTIMIZERS}
  87. - INSTALL_IMAGEMAGICK=${WORKSPACE_INSTALL_IMAGEMAGICK}
  88. - INSTALL_TERRAFORM=${WORKSPACE_INSTALL_TERRAFORM}
  89. - INSTALL_DUSK_DEPS=${WORKSPACE_INSTALL_DUSK_DEPS}
  90. - INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
  91. - INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
  92. - INSTALL_LIBPNG=${WORKSPACE_INSTALL_LIBPNG}
  93. - INSTALL_IONCUBE=${WORKSPACE_INSTALL_IONCUBE}
  94. - PUID=${WORKSPACE_PUID}
  95. - PGID=${WORKSPACE_PGID}
  96. - CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
  97. - NODE_VERSION=${WORKSPACE_NODE_VERSION}
  98. - YARN_VERSION=${WORKSPACE_YARN_VERSION}
  99. - DRUSH_VERSION=${WORKSPACE_DRUSH_VERSION}
  100. - TZ=${WORKSPACE_TIMEZONE}
  101. - BLACKFIRE_CLIENT_ID=${BLACKFIRE_CLIENT_ID}
  102. - BLACKFIRE_CLIENT_TOKEN=${BLACKFIRE_CLIENT_TOKEN}
  103. volumes:
  104. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  105. extra_hosts:
  106. - "dockerhost:${DOCKER_HOST_IP}"
  107. ports:
  108. - "${WORKSPACE_SSH_PORT}:22"
  109. tty: true
  110. environment:
  111. - PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
  112. networks:
  113. - frontend
  114. - backend
  115.  
  116. ### PHP-FPM ##############################################
  117. php-fpm:
  118. build:
  119. context: ./php-fpm
  120. args:
  121. - LARADOCK_PHP_VERSION=${PHP_VERSION}
  122. - INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
  123. - INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG}
  124. - INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
  125. - INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2}
  126. - INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
  127. - INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
  128. - INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
  129. - INSTALL_AMQP=${PHP_FPM_INSTALL_AMQP}
  130. - INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL}
  131. - INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE}
  132. - INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH}
  133. - INSTALL_GMP=${PHP_FPM_INSTALL_GMP}
  134. - INSTALL_PHPREDIS=${PHP_FPM_INSTALL_PHPREDIS}
  135. - INSTALL_MEMCACHED=${PHP_FPM_INSTALL_MEMCACHED}
  136. - INSTALL_OPCACHE=${PHP_FPM_INSTALL_OPCACHE}
  137. - INSTALL_EXIF=${PHP_FPM_INSTALL_EXIF}
  138. - INSTALL_AEROSPIKE=${PHP_FPM_INSTALL_AEROSPIKE}
  139. - AEROSPIKE_PHP_REPOSITORY=${AEROSPIKE_PHP_REPOSITORY}
  140. - INSTALL_MYSQLI=${PHP_FPM_INSTALL_MYSQLI}
  141. - INSTALL_PGSQL=${PHP_FPM_INSTALL_PGSQL}
  142. - INSTALL_PG_CLIENT=${PHP_FPM_INSTALL_PG_CLIENT}
  143. - INSTALL_TOKENIZER=${PHP_FPM_INSTALL_TOKENIZER}
  144. - INSTALL_INTL=${PHP_FPM_INSTALL_INTL}
  145. - INSTALL_GHOSTSCRIPT=${PHP_FPM_INSTALL_GHOSTSCRIPT}
  146. - INSTALL_LDAP=${PHP_FPM_INSTALL_LDAP}
  147. - INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
  148. - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
  149. - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
  150. - INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR}
  151. - INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME}
  152. - INSTALL_IONCUBE=${PHP_FPM_INSTALL_IONCUBE}
  153. volumes:
  154. - ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
  155. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  156. expose:
  157. - "9000"
  158. extra_hosts:
  159. - "dockerhost:${DOCKER_HOST_IP}"
  160. environment:
  161. - PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
  162. - DOCKER_HOST=tcp://docker-in-docker:2375
  163. - FAKETIME=${PHP_FPM_FAKETIME}
  164. depends_on:
  165. - workspace
  166. networks:
  167. - backend
  168. links:
  169. - docker-in-docker
  170.  
  171. ### PHP Worker ############################################
  172. php-worker:
  173. build:
  174. context: ./php-worker
  175. args:
  176. - PHP_VERSION=${PHP_VERSION}
  177. - INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
  178. - INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH}
  179. volumes:
  180. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  181. - ./php-worker/supervisord.d:/etc/supervisord.d
  182. depends_on:
  183. - workspace
  184. extra_hosts:
  185. - "dockerhost:${DOCKER_HOST_IP}"
  186. networks:
  187. - backend
  188.  
  189. ### NGINX Server #########################################
  190. nginx:
  191. build:
  192. context: ./nginx
  193. args:
  194. - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
  195. - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
  196. volumes:
  197. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  198. - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
  199. - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
  200. ports:
  201. - "${NGINX_HOST_HTTP_PORT}:80"
  202. - "${NGINX_HOST_HTTPS_PORT}:443"
  203. depends_on:
  204. - php-fpm
  205. networks:
  206. - frontend
  207. - backend
  208.  
  209. ### Blackfire ########################################
  210. blackfire:
  211. image: blackfire/blackfire
  212. environment:
  213. - BLACKFIRE_SERVER_ID=${BLACKFIRE_SERVER_ID}
  214. - BLACKFIRE_SERVER_TOKEN=${BLACKFIRE_SERVER_TOKEN}
  215. depends_on:
  216. - php-fpm
  217. networks:
  218. - backend
  219.  
  220. ### Apache Server ########################################
  221. apache2:
  222. build:
  223. context: ./apache2
  224. args:
  225. - PHP_UPSTREAM_CONTAINER=${APACHE_PHP_UPSTREAM_CONTAINER}
  226. - PHP_UPSTREAM_PORT=${APACHE_PHP_UPSTREAM_PORT}
  227. - PHP_UPSTREAM_TIMEOUT=${APACHE_PHP_UPSTREAM_TIMEOUT}
  228. - DOCUMENT_ROOT=${APACHE_DOCUMENT_ROOT}
  229. volumes:
  230. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  231. - ${APACHE_HOST_LOG_PATH}:/var/log/apache2
  232. - ${APACHE_SITES_PATH}:/etc/apache2/sites-available
  233. ports:
  234. - "${APACHE_HOST_HTTP_PORT}:80"
  235. - "${APACHE_HOST_HTTPS_PORT}:443"
  236. depends_on:
  237. - php-fpm
  238. networks:
  239. - frontend
  240. - backend
  241.  
  242. ### HHVM #################################################
  243. hhvm:
  244. build: ./hhvm
  245. volumes:
  246. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  247. expose:
  248. - "9000"
  249. depends_on:
  250. - workspace
  251. networks:
  252. - frontend
  253. - backend
  254.  
  255. ### Minio ################################################
  256. minio:
  257. build: ./minio
  258. volumes:
  259. - ${DATA_PATH_HOST}/minio/data:/export
  260. - ${DATA_PATH_HOST}/minio/config:/root/.minio
  261. ports:
  262. - "${MINIO_PORT}:9000"
  263. environment:
  264. - MINIO_ACCESS_KEY=access
  265. - MINIO_SECRET_KEY=secretkey
  266. networks:
  267. - frontend
  268. - backend
  269.  
  270. ### MySQL ################################################
  271. mysql:
  272. build:
  273. context: ./mysql
  274. args:
  275. - MYSQL_VERSION=${MYSQL_VERSION}
  276. environment:
  277. - MYSQL_DATABASE=${MYSQL_DATABASE}
  278. - MYSQL_USER=${MYSQL_USER}
  279. - MYSQL_PASSWORD=${MYSQL_PASSWORD}
  280. - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
  281. - TZ=${WORKSPACE_TIMEZONE}
  282. volumes:
  283. - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
  284. - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  285. ports:
  286. - "${MYSQL_PORT}:3306"
  287. networks:
  288. - backend
  289.  
  290. ### Percona ################################################
  291. percona:
  292. build:
  293. context: ./percona
  294. environment:
  295. - MYSQL_DATABASE=${PERCONA_DATABASE}
  296. - MYSQL_USER=${PERCONA_USER}
  297. - MYSQL_PASSWORD=${PERCONA_PASSWORD}
  298. - MYSQL_ROOT_PASSWORD=${PERCONA_ROOT_PASSWORD}
  299. volumes:
  300. - ${DATA_PATH_HOST}/percona:/var/lib/mysql
  301. - ${PERCONA_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  302. ports:
  303. - "${PERCONA_PORT}:3306"
  304. networks:
  305. - backend
  306.  
  307. ### MSSQL ################################################
  308. mssql:
  309. build:
  310. context: ./mssql
  311. environment:
  312. - MSSQL_DATABASE=${MSSQL_DATABASE}
  313. - SA_PASSWORD=${MSSQL_PASSWORD}
  314. - ACCEPT_EULA=Y
  315. volumes:
  316. - ${DATA_PATH_HOST}/mssql:/var/opt/mssql
  317. ports:
  318. - "${MSSQL_PORT}:1433"
  319. networks:
  320. - backend
  321.  
  322. ### MariaDB ##############################################
  323. mariadb:
  324. build: ./mariadb
  325. volumes:
  326. - ${DATA_PATH_HOST}/mariadb:/var/lib/mysql
  327. - ${MARIADB_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  328. ports:
  329. - "${MARIADB_PORT}:3306"
  330. environment:
  331. - MYSQL_DATABASE=${MARIADB_DATABASE}
  332. - MYSQL_USER=${MARIADB_USER}
  333. - MYSQL_PASSWORD=${MARIADB_PASSWORD}
  334. - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
  335. networks:
  336. - backend
  337.  
  338. ### PostgreSQL ###########################################
  339. postgres:
  340. build: ./postgres
  341. volumes:
  342. - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
  343. - ${POSTGRES_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  344. ports:
  345. - "${POSTGRES_PORT}:5432"
  346. environment:
  347. - POSTGRES_DB=${POSTGRES_DB}
  348. - POSTGRES_USER=${POSTGRES_USER}
  349. - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
  350. networks:
  351. - backend
  352.  
  353. ### PostgreSQL PostGis ###################################
  354. postgres-postgis:
  355. build: ./postgres-postgis
  356. volumes:
  357. - ${DATA_PATH_HOST}/postgres:/var/lib/postgresql/data
  358. ports:
  359. - "${POSTGRES_PORT}:5432"
  360. environment:
  361. - POSTGRES_DB=${POSTGRES_DB}
  362. - POSTGRES_USER=${POSTGRES_USER}
  363. - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
  364. networks:
  365. - backend
  366.  
  367. ### Neo4j ################################################
  368. neo4j:
  369. build: ./neo4j
  370. ports:
  371. - "7474:7474"
  372. - "1337:1337"
  373. environment:
  374. - NEO4J_AUTH=default:secret
  375. volumes:
  376. - ${DATA_PATH_HOST}/neo4j:/var/lib/neo4j/data
  377. networks:
  378. - backend
  379.  
  380. ### MongoDB ##############################################
  381. mongo:
  382. build: ./mongo
  383. ports:
  384. - "${MONGODB_PORT}:27017"
  385. volumes:
  386. - ${DATA_PATH_HOST}/mongo:/data/db
  387. networks:
  388. - backend
  389.  
  390. ### RethinkDB ##############################################
  391. rethinkdb:
  392. build: ./rethinkdb
  393. ports:
  394. - "${RETHINKDB_PORT}:8080"
  395. volumes:
  396. - ${DATA_PATH_HOST}/rethinkdb:/data/rethinkdb_data
  397. networks:
  398. - backend
  399.  
  400. ### Redis ################################################
  401. redis:
  402. build: ./redis
  403. volumes:
  404. - ${DATA_PATH_HOST}/redis:/data
  405. ports:
  406. - "${REDIS_PORT}:6379"
  407. networks:
  408. - backend
  409.  
  410. ### Aerospike ##########################################
  411. aerospike:
  412. build: ./aerospike
  413. volumes:
  414. - workspace
  415. - ${DATA_PATH_HOST}/aerospike:/opt/aerospike/data
  416. ports:
  417. - "${AEROSPIKE_SERVICE_PORT}:3000"
  418. - "${AEROSPIKE_FABRIC_PORT}:3001"
  419. - "${AEROSPIKE_HEARTBEAT_PORT}:3002"
  420. - "${AEROSPIKE_INFO_PORT}:3003"
  421. networks:
  422. - backend
  423.  
  424. ### Memcached ############################################
  425. memcached:
  426. build: ./memcached
  427. volumes:
  428. - ${DATA_PATH_HOST}/memcached:/var/lib/memcached
  429. ports:
  430. - "${MEMCACHED_HOST_PORT}:11211"
  431. depends_on:
  432. - php-fpm
  433. networks:
  434. - backend
  435.  
  436. ### Beanstalkd ###########################################
  437. beanstalkd:
  438. build: ./beanstalkd
  439. ports:
  440. - "${BEANSTALKD_HOST_PORT}:11300"
  441. privileged: true
  442. depends_on:
  443. - php-fpm
  444. networks:
  445. - backend
  446.  
  447. ### RabbitMQ #############################################
  448. rabbitmq:
  449. build: ./rabbitmq
  450. ports:
  451. - "${RABBITMQ_NODE_HOST_PORT}:5672"
  452. - "${RABBITMQ_MANAGEMENT_HTTP_HOST_PORT}:15672"
  453. - "${RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT}:15671"
  454. privileged: true
  455. environment:
  456. - RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER}
  457. - RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS}
  458. depends_on:
  459. - php-fpm
  460. networks:
  461. - backend
  462.  
  463. ### Beanstalkd Console ###################################
  464. beanstalkd-console:
  465. build: ./beanstalkd-console
  466. ports:
  467. - "${BEANSTALKD_CONSOLE_HOST_PORT}:2080"
  468. depends_on:
  469. - beanstalkd
  470. networks:
  471. - backend
  472.  
  473. ### Caddy Server #########################################
  474. caddy:
  475. build: ./caddy
  476. volumes:
  477. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  478. - ${CADDY_CONFIG_PATH}:/etc/caddy
  479. - ${CADDY_HOST_LOG_PATH}:/var/log/caddy
  480. - ${DATA_PATH_HOST}:/root/.caddy
  481. ports:
  482. - "${CADDY_HOST_HTTP_PORT}:80"
  483. - "${CADDY_HOST_HTTPS_PORT}:443"
  484. depends_on:
  485. - php-fpm
  486. networks:
  487. - frontend
  488. - backend
  489.  
  490. ### phpMyAdmin ###########################################
  491. phpmyadmin:
  492. build: ./phpmyadmin
  493. environment:
  494. - PMA_ARBITRARY=1
  495. - MYSQL_USER=${PMA_USER}
  496. - MYSQL_PASSWORD=${PMA_PASSWORD}
  497. - MYSQL_ROOT_PASSWORD=${PMA_ROOT_PASSWORD}
  498. ports:
  499. - "${PMA_PORT}:80"
  500. depends_on:
  501. - "${PMA_DB_ENGINE}"
  502. networks:
  503. - frontend
  504. - backend
  505.  
  506. ### Adminer ###########################################
  507. adminer:
  508. build:
  509. context: ./adminer
  510. args:
  511. - INSTALL_MSSQL=${ADM_INSTALL_MSSQL}
  512. ports:
  513. - "${ADM_PORT}:8080"
  514. depends_on:
  515. - php-fpm
  516. networks:
  517. - frontend
  518. - backend
  519.  
  520. ### pgAdmin ##############################################
  521. pgadmin:
  522. build: ./pgadmin
  523. ports:
  524. - "5050:5050"
  525. volumes:
  526. - ${DATA_PATH_HOST}/pgadmin-backup:/var/lib/pgadmin/storage/pgadmin4
  527. depends_on:
  528. - postgres
  529. networks:
  530. - frontend
  531. - backend
  532.  
  533. ### ElasticSearch ########################################
  534. elasticsearch:
  535. build: ./elasticsearch
  536. volumes:
  537. - elasticsearch:/usr/share/elasticsearch/data
  538. environment:
  539. - cluster.name=laradock-cluster
  540. - bootstrap.memory_lock=true
  541. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  542. ulimits:
  543. memlock:
  544. soft: -1
  545. hard: -1
  546. ports:
  547. - "${ELASTICSEARCH_HOST_HTTP_PORT}:9200"
  548. - "${ELASTICSEARCH_HOST_TRANSPORT_PORT}:9300"
  549. depends_on:
  550. - php-fpm
  551. networks:
  552. - frontend
  553. - backend
  554.  
  555. ### Kibana ##############################################
  556. kibana:
  557. build: ./kibana
  558. ports:
  559. - "${KIBANA_HTTP_PORT}:5601"
  560. depends_on:
  561. - elasticsearch
  562. networks:
  563. - frontend
  564. - backend
  565.  
  566. ### Certbot #########################################
  567. certbot:
  568. build:
  569. context: ./certbot
  570. volumes:
  571. - ./data/certbot/certs/:/var/certs
  572. - ./certbot/letsencrypt/:${APP_CODE_PATH_CONTAINER}/letsencrypt
  573. environment:
  574. - CN="fake.domain.com"
  575. - EMAIL="fake.email@gmail.com"
  576. networks:
  577. - frontend
  578.  
  579. ### Mailhog ################################################
  580. mailhog:
  581. build: ./mailhog
  582. ports:
  583. - "1025:1025"
  584. - "8025:8025"
  585. networks:
  586. - frontend
  587. - backend
  588.  
  589. ### MailDev ##############################################
  590. maildev:
  591. build: ./maildev
  592. ports:
  593. - "${MAILDEV_HTTP_PORT}:80"
  594. - "${MAILDEV_SMTP_PORT}:25"
  595. networks:
  596. - frontend
  597. - backend
  598.  
  599. ### Selenium ###############################################
  600. selenium:
  601. build: ./selenium
  602. ports:
  603. - "${SELENIUM_PORT}:4444"
  604. volumes:
  605. - /dev/shm:/dev/shm
  606. networks:
  607. - frontend
  608.  
  609. ### Varnish ##########################################
  610. proxy:
  611. build: ./varnish
  612. expose:
  613. - ${VARNISH_PORT}
  614. environment:
  615. - VARNISH_CONFIG=${VARNISH_CONFIG}
  616. - CACHE_SIZE=${VARNISH_PROXY1_CACHE_SIZE}
  617. - VARNISHD_PARAMS=${VARNISHD_PARAMS}
  618. - VARNISH_PORT=${VARNISH_PORT}
  619. - BACKEND_HOST=${VARNISH_PROXY1_BACKEND_HOST}
  620. - BACKEND_PORT=${VARNISH_BACKEND_PORT}
  621. - VARNISH_SERVER=${VARNISH_PROXY1_SERVER}
  622. links:
  623. - workspace
  624. networks:
  625. - frontend
  626.  
  627. proxy2:
  628. build: ./varnish
  629. expose:
  630. - ${VARNISH_PORT}
  631. environment:
  632. - VARNISH_CONFIG=${VARNISH_CONFIG}
  633. - CACHE_SIZE=${VARNISH_PROXY2_CACHE_SIZE}
  634. - VARNISHD_PARAMS=${VARNISHD_PARAMS}
  635. - VARNISH_PORT=${VARNISH_PORT}
  636. - BACKEND_HOST=${VARNISH_PROXY2_BACKEND_HOST}
  637. - BACKEND_PORT=${VARNISH_BACKEND_PORT}
  638. - VARNISH_SERVER=${VARNISH_PROXY2_SERVER}
  639. links:
  640. - workspace
  641. networks:
  642. - frontend
  643.  
  644. ### HAProxy ####################################
  645. haproxy:
  646. build: ./haproxy
  647. ports:
  648. - "${HAPROXY_HOST_HTTP_PORT}:8085"
  649. volumes:
  650. - /var/run/docker.sock:/var/run/docker.sock
  651. links:
  652. - proxy
  653. - proxy2
  654.  
  655. ### Jenkins ###################################################
  656. jenkins:
  657. build: ./jenkins
  658. environment:
  659. JAVA_OPTS: "-Djava.awt.headless=true"
  660. ports:
  661. - "${JENKINS_HOST_SLAVE_AGENT_PORT}:50000"
  662. - "${JENKINS_HOST_HTTP_PORT}:8080"
  663. privileged: true
  664. volumes:
  665. - ${JENKINS_HOME}:/var/jenkins_home
  666. - /var/run/docker.sock:/var/run/docker.sock
  667. networks:
  668. - frontend
  669. - backend
  670.  
  671. ### Grafana ################################################
  672. grafana:
  673. build:
  674. context: ./grafana
  675. volumes:
  676. - ${DATA_PATH_HOST}/grafana:/var/lib/grafana
  677. ports:
  678. - "${GRAFANA_PORT}:3000"
  679. networks:
  680. - backend
  681.  
  682. ### Laravel Echo Server #######################################
  683. laravel-echo-server:
  684. build:
  685. context: ./laravel-echo-server
  686. volumes:
  687. - ./laravel-echo-server/laravel-echo-server.json:/app/laravel-echo-server.json:ro
  688. ports:
  689. - "${LARAVEL_ECHO_SERVER_PORT}:6001"
  690. links:
  691. - redis
  692. networks:
  693. - frontend
  694. - backend
  695.  
  696. ### Solr ################################################
  697. solr:
  698. build:
  699. context: ./solr
  700. args:
  701. - SOLR_VERSION=${SOLR_VERSION}
  702. - SOLR_DATAIMPORTHANDLER_MYSQL=${SOLR_DATAIMPORTHANDLER_MYSQL}
  703. volumes:
  704. - ${DATA_PATH_HOST}/solr:/opt/solr/server/solr/mycores
  705. ports:
  706. - "${SOLR_PORT}:8983"
  707. networks:
  708. - backend
  709.  
  710. ### AWS EB-CLI ################################################
  711. aws:
  712. build:
  713. context: ./aws
  714. volumes:
  715. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  716. depends_on:
  717. - workspace
  718. tty: true
  719.  
  720. ### Portainer ################################################
  721. portainer:
  722. build:
  723. context: ./portainer
  724. volumes:
  725. - ${DATA_PATH_HOST}/portainer_data:/data
  726. - /var/run/docker.sock:/var/run/docker.sock
  727. extra_hosts:
  728. - "dockerhost:${DOCKER_HOST_IP}"
  729. ports:
  730. - 9010:9000
  731. networks:
  732. - backend
  733.  
  734. ### Gitlab ################################################
  735. gitlab:
  736. build:
  737. context: ./gitlab
  738. environment:
  739. GITLAB_OMNIBUS_CONFIG: |
  740. external_url '${GITLAB_DOMAIN_NAME}'
  741. redis['enable'] = false
  742. nginx['listen_https'] = false
  743. nginx['listen_port'] = 80
  744. postgresql['enable'] = false
  745. gitlab_rails['trusted_proxies'] = ['caddy','nginx','apache2']
  746. gitlab_rails['redis_host'] = 'redis'
  747. gitlab_rails['redis_database'] = 8
  748. gitlab_rails['db_host'] = 'postgres'
  749. gitlab_rails['db_username'] = 'laradock_gitlab'
  750. gitlab_rails['db_password'] = 'laradock_gitlab'
  751. gitlab_rails['db_database'] = 'laradock_gitlab'
  752. gitlab_rails['initial_root_password'] = '${GITLAB_ROOT_PASSWORD}'
  753. gitlab_rails['gitlab_shell_ssh_port'] = ${GITLAB_HOST_SSH_PORT}
  754. volumes:
  755. - ${DATA_PATH_HOST}/gitlab/config:/etc/gitlab
  756. - ${DATA_PATH_HOST}/gitlab/data:/var/opt/gitlab
  757. - ${GITLAB_HOST_LOG_PATH}:/var/log/gitlab
  758. ports:
  759. - "${GITLAB_HOST_HTTP_PORT}:80"
  760. - "${GITLAB_HOST_HTTPS_PORT}:443"
  761. - "${GITLAB_HOST_SSH_PORT}:22"
  762. networks:
  763. - backend
  764. depends_on:
  765. - redis
  766. - postgres
  767. gitlab-runner:
  768. image: gitlab/gitlab-runner:latest
  769. environment:
  770. - CI_SERVER_URL=${GITLAB_DOMAIN_NAME}
  771. volumes:
  772. - ${DATA_PATH_HOST}/gitlab/runner:/etc/gitlab-runner
  773. - /var/run/docker.sock:/var/run/docker.sock:rw
  774. restart: always
  775.  
  776. ### JupyterHub #########################################
  777. jupyterhub:
  778. build:
  779. context: ./jupyterhub
  780. depends_on:
  781. - postgres
  782. - jupyterhub-user
  783. restart: always
  784. volumes:
  785. - /var/run/docker.sock:/var/run/docker.sock:rw
  786. - ${DATA_PATH_HOST}/jupyterhub/:/data
  787. - ${JUPYTERHUB_CUSTOM_CONFIG}:/jupyterhub_config.py
  788. - ${JUPYTERHUB_USER_DATA}:/user-data
  789. - ${JUPYTERHUB_USER_LIST}:/userlist
  790. networks:
  791. - backend
  792. ports:
  793. - "${JUPYTERHUB_PORT}:80"
  794. environment:
  795. - TERM=xterm
  796. - JUPYTERHUB_USER_DATA=${JUPYTERHUB_USER_DATA}
  797. - JUPYTERHUB_POSTGRES_DB=${JUPYTERHUB_POSTGRES_DB}
  798. - JUPYTERHUB_POSTGRES_USER=${JUPYTERHUB_POSTGRES_USER}
  799. - JUPYTERHUB_POSTGRES_HOST=${JUPYTERHUB_POSTGRES_HOST}
  800. - JUPYTERHUB_POSTGRES_PASSWORD=${JUPYTERHUB_POSTGRES_PASSWORD}
  801. - JUPYTERHUB_OAUTH_CALLBACK_URL=${JUPYTERHUB_OAUTH_CALLBACK_URL}
  802. - JUPYTERHUB_OAUTH_CLIENT_ID=${JUPYTERHUB_OAUTH_CLIENT_ID}
  803. - JUPYTERHUB_OAUTH_CLIENT_SECRET=${JUPYTERHUB_OAUTH_CLIENT_SECRET}
  804. - JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE=${JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE}
  805. jupyterhub-user:
  806. build:
  807. context: ./jupyterhub
  808. dockerfile: Dockerfile.user
  809. command: ["sh", "-c", "echo \"build only\""]
  810.  
  811. ### IPython #########################################
  812. ipython-controller:
  813. build:
  814. context: ./ipython
  815. dockerfile: Dockerfile.controller
  816. networks:
  817. - backend
  818. extra_hosts:
  819. - "laradock-ipython:${LARADOCK_IPYTHON_CONTROLLER_IP}"
  820. ports:
  821. - "33327-33338:33327-33338"
  822. ipython-engine:
  823. build:
  824. context: ./ipython
  825. dockerfile: Dockerfile.engine
  826. networks:
  827. - backend
  828. extra_hosts:
  829. - "laradock-ipython:${LARADOCK_IPYTHON_CONTROLLER_IP}"
  830.  
  831. ### Docker-in-Docker ################################################
  832. docker-in-docker:
  833. image: docker:dind
  834. privileged: true
  835. volumes:
  836. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  837. expose:
  838. - 2375
  839. networks:
  840. - backend
  841.  
  842. ### NetData ################################################
  843. netdata:
  844. image: titpetric/netdata:latest
  845. cap_add:
  846. - SYS_PTRACE
  847. volumes:
  848. - /:/host:ro
  849. ports:
  850. - "${NETDATA_PORT}:19999"
  851. networks:
  852. - backend
  853.  
  854. ### PHPRedisAdmin ################################################
  855. phpredisadmin:
  856. image: erikdubbelboer/phpredisadmin:latest
  857. environment:
  858. - ADMIN_USER=${REDIS_WEBUI_USERNAME}
  859. - ADMIN_PASS=${REDIS_WEBUI_PASSWORD}
  860. - REDIS_1_HOST=${REDIS_WEBUI_CONNECT_HOST}
  861. - REDIS_1_PORT=${REDIS_WEBUI_CONNECT_PORT}
  862. networks:
  863. - backend
  864. ports:
  865. - "${REDIS_WEBUI_PORT}:80"
  866. depends_on:
  867. - redis
  868.  
  869. ### MongoWebUI ################################################
  870. mongo-webui:
  871. build:
  872. context: ./mongo-webui
  873. restart: always
  874. environment:
  875. - ROOT_URL=${MONGO_WEBUI_ROOT_URL}
  876. - MONGO_URL=${MONGO_WEBUI_MONGO_URL}
  877. - INSTALL_MONGO=${MONGO_WEBUI_INSTALL_MONGO}
  878. volumes:
  879. - ${DATA_PATH_HOST}/mongo-webui:/data/db
  880. ports:
  881. - "${MONGO_WEBUI_PORT}:3000"
  882. networks:
  883. - backend
  884. depends_on:
  885. - mongo
  886.  
  887. ### Metabase #################################################
  888. metabase:
  889. image: metabase/metabase:latest
  890. environment:
  891. - MB_DB_FILE=/metabase-data/${METABASE_DB_FILE}
  892. ports:
  893. - ${METABASE_PORT}:3000
  894. volumes:
  895. - ${DATA_PATH_HOST}/metabase-data:/metabase-data
  896. networks:
  897. - backend
  898.  
  899. ### IDE-THEIA ################################################
  900. ide-theia:
  901. build:
  902. context: ./ide-theia
  903. volumes:
  904. - ${APP_CODE_PATH_HOST}:/home/project
  905. ports:
  906. - "${IDE_THEIA_PORT}:3000"
  907. networks:
  908. - backend
  909.  
  910. ### IDE-WEBIDE ################################################
  911. ide-webide:
  912. build:
  913. context: ./ide-webide
  914. volumes:
  915. - ${DATA_PATH_HOST}/ide/webide/ide.db:/root/.coding-ide/ide.db
  916. ports:
  917. - "${IDE_WEBIDE_PORT}:8080"
  918. networks:
  919. - backend
  920.  
  921. ### IDE-CODIAD ################################################
  922. ide-codiad:
  923. build:
  924. context: ./ide-codiad
  925. environment:
  926. - APP_CODE_PATH_CONTAINER=${APP_CODE_PATH_CONTAINER}
  927. - TZ=${WORKSPACE_TIMEZONE}
  928. - PGID=1000
  929. - PUID=1000
  930. volumes:
  931. - /etc/localtime:/etc/localtime:ro
  932. - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
  933. - ${DATA_PATH_HOST}/ide/codiad:/config
  934. ports:
  935. - "${IDE_CODIAD_PORT}:80"
  936. networks:
  937. - backend
  938.  
  939. ### IDE-ICECODER ################################################
  940. ide-icecoder:
  941. build:
  942. context: ./ide-icecoder
  943. environment:
  944. - DOCUMENT_ROOT=${APP_CODE_PATH_CONTAINER}
  945. - TZ=${WORKSPACE_TIMEZONE}
  946. - PGID=1000
  947. - PUID=1000
  948. volumes:
  949. - /etc/localtime:/etc/localtime:ro
  950. - ${APP_CODE_PATH_HOST}:/home/laradock/ICEcoder/dev
  951. ports:
  952. - "${IDE_ICECODER_PORT}:8080"
  953. networks:
  954. - backend
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement