docker-compose.dev.yml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. # WARNING: This is a DEVELOPMENT docker-compose file, it should not be used for production.
  2. services:
  3. fullstack:
  4. image: nginxproxymanager:dev
  5. container_name: npm_core
  6. build:
  7. context: ./
  8. dockerfile: ./dev/Dockerfile
  9. ports:
  10. - 3080:80
  11. - 3081:81
  12. - 3443:443
  13. networks:
  14. nginx_proxy_manager:
  15. aliases:
  16. - website1.example.com
  17. - website2.example.com
  18. - website3.example.com
  19. environment:
  20. PUID: 1000
  21. PGID: 1000
  22. FORCE_COLOR: 1
  23. # specifically for dev:
  24. DEBUG: 'true'
  25. DEVELOPMENT: 'true'
  26. LE_STAGING: 'true'
  27. # db:
  28. DB_MYSQL_HOST: 'db'
  29. DB_MYSQL_PORT: '3306'
  30. DB_MYSQL_USER: 'npm'
  31. DB_MYSQL_PASSWORD: 'npm'
  32. DB_MYSQL_NAME: 'npm'
  33. # DB_SQLITE_FILE: "/data/database.sqlite"
  34. # DISABLE_IPV6: "true"
  35. # Required for DNS Certificate provisioning testing:
  36. LE_SERVER: 'https://ca.internal/acme/acme/directory'
  37. REQUESTS_CA_BUNDLE: '/etc/ssl/certs/NginxProxyManager.crt'
  38. volumes:
  39. - npm_data:/data
  40. - le_data:/etc/letsencrypt
  41. - './dev/resolv.conf:/etc/resolv.conf:ro'
  42. - ../backend:/app
  43. - ../frontend:/app/frontend
  44. - ../global:/app/global
  45. healthcheck:
  46. test: ["CMD", "/usr/bin/check-health"]
  47. interval: 10s
  48. timeout: 3s
  49. depends_on:
  50. - db
  51. working_dir: /app
  52. db:
  53. image: jc21/mariadb-aria
  54. container_name: npm_db
  55. ports:
  56. - 33306:3306
  57. networks:
  58. - nginx_proxy_manager
  59. environment:
  60. MYSQL_ROOT_PASSWORD: 'npm'
  61. MYSQL_DATABASE: 'npm'
  62. MYSQL_USER: 'npm'
  63. MYSQL_PASSWORD: 'npm'
  64. volumes:
  65. - db_data:/var/lib/mysql
  66. stepca:
  67. image: jc21/testca
  68. volumes:
  69. - './dev/resolv.conf:/etc/resolv.conf:ro'
  70. - '/etc/localtime:/etc/localtime:ro'
  71. networks:
  72. nginx_proxy_manager:
  73. aliases:
  74. - ca.internal
  75. dnsrouter:
  76. image: jc21/dnsrouter
  77. volumes:
  78. - ./dev/dnsrouter-config.json.tmp:/dnsrouter-config.json:ro
  79. networks:
  80. - nginx_proxy_manager
  81. swagger:
  82. image: swaggerapi/swagger-ui:latest
  83. container_name: npm_swagger
  84. ports:
  85. - 3082:80
  86. environment:
  87. URL: "http://npm:81/api/schema"
  88. PORT: '80'
  89. depends_on:
  90. - fullstack
  91. squid:
  92. image: ubuntu/squid
  93. container_name: npm_squid
  94. volumes:
  95. - './dev/squid.conf:/etc/squid/squid.conf:ro'
  96. - './dev/resolv.conf:/etc/resolv.conf:ro'
  97. - '/etc/localtime:/etc/localtime:ro'
  98. networks:
  99. - nginx_proxy_manager
  100. ports:
  101. - 8128:3128
  102. pdns:
  103. image: pschiffe/pdns-mysql
  104. volumes:
  105. - '/etc/localtime:/etc/localtime:ro'
  106. environment:
  107. PDNS_master: 'yes'
  108. PDNS_api: 'yes'
  109. PDNS_api_key: 'npm'
  110. PDNS_webserver: 'yes'
  111. PDNS_webserver_address: '0.0.0.0'
  112. PDNS_webserver_password: 'npm'
  113. PDNS_webserver-allow-from: '127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8'
  114. PDNS_version_string: 'anonymous'
  115. PDNS_default_ttl: 1500
  116. PDNS_allow_axfr_ips: '127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8'
  117. PDNS_gmysql_host: pdns-db
  118. PDNS_gmysql_port: 3306
  119. PDNS_gmysql_user: pdns
  120. PDNS_gmysql_password: pdns
  121. PDNS_gmysql_dbname: pdns
  122. depends_on:
  123. - pdns-db
  124. networks:
  125. nginx_proxy_manager:
  126. aliases:
  127. - ns1.pdns
  128. - ns2.pdns
  129. pdns-db:
  130. image: mariadb
  131. environment:
  132. MYSQL_ROOT_PASSWORD: 'pdns'
  133. MYSQL_DATABASE: 'pdns'
  134. MYSQL_USER: 'pdns'
  135. MYSQL_PASSWORD: 'pdns'
  136. volumes:
  137. - 'pdns_mysql:/var/lib/mysql'
  138. - '/etc/localtime:/etc/localtime:ro'
  139. - './dev/pdns-db.sql:/docker-entrypoint-initdb.d/01_init.sql:ro'
  140. networks:
  141. - nginx_proxy_manager
  142. cypress:
  143. image: "npm_dev_cypress"
  144. build:
  145. context: ../
  146. dockerfile: test/cypress/Dockerfile
  147. environment:
  148. HTTP_PROXY: 'squid:3128'
  149. HTTPS_PROXY: 'squid:3128'
  150. volumes:
  151. - '../test/results:/results'
  152. - './dev/resolv.conf:/etc/resolv.conf:ro'
  153. - '/etc/localtime:/etc/localtime:ro'
  154. command: cypress run --browser chrome --config-file=cypress/config/ci.js
  155. networks:
  156. - nginx_proxy_manager
  157. volumes:
  158. npm_data:
  159. name: npm_core_data
  160. le_data:
  161. name: npm_le_data
  162. db_data:
  163. name: npm_db_data
  164. pdns_mysql:
  165. name: npm_pdns_mysql
  166. networks:
  167. nginx_proxy_manager:
  168. name: npm_network