You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.5 KiB

  1. services:
  2. nginx:
  3. image: nginx
  4. restart: always
  5. volumes:
  6. - ${PROJECTS_DIR}:/usr/share/nginx/html
  7. - ${PYTHON_PROJECTS_DIR}:/usr/share/nginx/python
  8. - ./config/nginx/conf.d:/etc/nginx/conf.d
  9. - ./config/nginx/includes.d:/etc/nginx/includes.d
  10. - ./config/nginx/ssl.d:/etc/nginx/ssl.d
  11. - ./log/nginx:/var/log/nginx
  12. ports:
  13. - "80:80"
  14. - "443:443"
  15. php:
  16. build:
  17. context: ./dockerfiles/php-fpm
  18. args:
  19. - CUSTOM_TZ=${CUSTOM_TZ}
  20. - CUSTOM_LOCALE=${CUSTOM_LOCALE}
  21. - PHP_OPT_MEMORY_LIMIT=${PHP_OPT_MEMORY_LIMIT}
  22. - PHP_OPT_POST_MAX_SIZE=${PHP_OPT_POST_MAX_SIZE}
  23. - PHP_OPT_UPLOAD_MAX_FILESIZE=${PHP_OPT_UPLOAD_MAX_FILESIZE}
  24. - PHP_OPT_MAX_EXECUTION_TIME=${PHP_OPT_MAX_EXECUTION_TIME}
  25. # Other args that might be used for customize in every separate container
  26. # - INSTALL_PEAR_MAIL=true
  27. # - INSTALL_LIBREOFFICE=true
  28. # - INSTALL_NUC_CERTS=true
  29. # - PHP_OPT_SHORT_OPEN_TAG=On
  30. restart: always
  31. volumes:
  32. - ${PROJECTS_DIR}:/usr/share/nginx/html
  33. - ./data/profiler:/tmp/profiler
  34. workspace:
  35. build:
  36. context: ./dockerfiles/workspace
  37. args:
  38. - CUSTOM_TZ=${CUSTOM_TZ}
  39. - CUSTOM_LOCALE=${CUSTOM_LOCALE}
  40. - CUSTOM_PUID=${WORKSPACE_PUID}
  41. - CUSTOM_PGID=${WORKSPACE_PGID}
  42. - INSTALL_YADM=${WORKSPACE_INSTALL_YADM}
  43. - INSTALL_FINE_UTILS=${WORKSPACE_INSTALL_FINE_UTILS}
  44. - INSTALL_SSH=${WORKSPACE_INSTALL_SSH}
  45. - PHP_OPT_MEMORY_LIMIT=${WORKSPACE_PHP_OPT_MEMORY_LIMIT}
  46. # Other args that might be used for customize in every separate container
  47. # - CUSTOM_COMPOSER_VERSION=1
  48. # - INSTALL_WP_CLI=true
  49. # - INSTALL_PEAR_MAIL=true
  50. # - INSTALL_NODE=true
  51. # - NODE_VERSION=v18.18.0
  52. # - INSTALL_PYTHON=true
  53. # - PYTHON_VERSION=3.12
  54. # - INSTALL_SUPERVISOR=false # Not ready
  55. # - INSTALL_LIBREOFFICE=true
  56. # - INSTALL_NUC_CERTS=true
  57. # - PHP_OPT_SHORT_OPEN_TAG=On
  58. restart: always
  59. volumes:
  60. - ${PROJECTS_DIR}:/var/www
  61. - ./data/profiler:/tmp/profiler
  62. - ./config/supervisor:/etc/supervisor/conf.d
  63. extra_hosts:
  64. - "dockerhost:${DOCKER_HOST_IP}"
  65. secrets:
  66. - user_ssh_key
  67. - user_known_hosts
  68. - composer_auth
  69. db:
  70. image: mariadb
  71. restart: always
  72. environment:
  73. MYSQL_ROOT_PASSWORD: 123456
  74. volumes:
  75. - database:/var/lib/mysql
  76. - ./hostfiles:/hostfiles
  77. - ./log/mariadb:/var/log/mariadb
  78. - ./config/mariadb:/etc/mysql/conf.d
  79. security_opt:
  80. - seccomp=unconfined
  81. pma:
  82. image: phpmyadmin/phpmyadmin
  83. restart: always
  84. environment:
  85. PMA_HOST: db
  86. PMA_USER: root
  87. PMA_PASSWORD: 123456
  88. inbucket:
  89. image: inbucket/inbucket
  90. restart: always
  91. expose:
  92. - 2500
  93. redis:
  94. image: redis
  95. restart: always
  96. command: [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
  97. volumes:
  98. - ./config/redis/redis.conf:/usr/local/etc/redis/redis.conf
  99. - ./config/redis/redis-local.conf:/usr/local/etc/redis/redis-local.conf
  100. elastic:
  101. build:
  102. context: ./dockerfiles/elastic
  103. restart: on-failure
  104. environment:
  105. - discovery.type=single-node
  106. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  107. ulimits:
  108. memlock:
  109. soft: -1
  110. hard: -1
  111. expose:
  112. - "9200"
  113. - "9300"
  114. minio:
  115. image: minio/minio:RELEASE.2020-06-12T00-06-19Z
  116. restart: always
  117. command: server /minio
  118. pm2:
  119. build:
  120. context: ./dockerfiles/pm2
  121. restart: always
  122. expose:
  123. - 3000