docker-compose.dev.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. # WARNING: This is a DEVELOPMENT docker-compose file used for development of the entire app, it should not be used for production.
  2. services:
  3. npm:
  4. image: nginxproxymanager:dev
  5. container_name: 'npm.dev'
  6. build:
  7. context: ../
  8. dockerfile: ./docker/dev/Dockerfile
  9. args:
  10. GOPROXY: "${GOPROXY:-}"
  11. GOPRIVATE: "${GOPRIVATE:-}"
  12. ports:
  13. - 3080:80
  14. - 3081:81
  15. - 3443:443
  16. environment:
  17. #DEBUG: 'true'
  18. DEVELOPMENT: 'true'
  19. GOPROXY: "${GOPROXY:-}"
  20. GOPRIVATE: "${GOPRIVATE:-}"
  21. YARN_REGISTRY: "${YARN_REGISTRY:-}"
  22. NPM_LOG_LEVEL: 'debug'
  23. PUID: 1000
  24. PGID: 1000
  25. volumes:
  26. - /etc/localtime:/etc/localtime:ro
  27. - ../:/app
  28. - ./rootfs/var/www/html:/var/www/html
  29. - ./dev/resolv.conf:/etc/resolv.conf:ro
  30. - npm_data_vol:/data
  31. working_dir: /app
  32. networks:
  33. default:
  34. aliases:
  35. - website1.internal
  36. - website2.internal
  37. - website3.internal
  38. restart: unless-stopped
  39. npm-stepca:
  40. image: jc21/testca
  41. container_name: "npm.stepca"
  42. volumes:
  43. - ./dev/resolv.conf:/etc/resolv.conf:ro
  44. networks:
  45. default:
  46. aliases:
  47. - ca.internal
  48. npm-pebble:
  49. image: letsencrypt/pebble
  50. container_name: "npm.pebble"
  51. command: pebble -config /test/config/pebble-config.json
  52. environment:
  53. PEBBLE_VA_SLEEPTIME: 2
  54. volumes:
  55. - ./dev/pebble-config.json:/test/config/pebble-config.json
  56. - ./dev/resolv.conf:/etc/resolv.conf:ro
  57. networks:
  58. default:
  59. aliases:
  60. # required for https cert dns san
  61. - pebble
  62. npm-swagger:
  63. image: swaggerapi/swagger-ui:latest
  64. container_name: "npm.swagger"
  65. ports:
  66. - 3001:80
  67. environment:
  68. URL: "http://${SWAGGER_PUBLIC_DOMAIN:-127.0.0.1:3081}/api/schema"
  69. PORT: '80'
  70. depends_on:
  71. - npm
  72. npm-pdns:
  73. image: pschiffe/pdns-mysql:4.8
  74. container_name: "npm.pdns"
  75. volumes:
  76. - '/etc/localtime:/etc/localtime:ro'
  77. environment:
  78. PDNS_master: 'yes'
  79. PDNS_api: 'yes'
  80. PDNS_api_key: 'npm'
  81. PDNS_webserver: 'yes'
  82. PDNS_webserver_address: '0.0.0.0'
  83. PDNS_webserver_password: 'npm'
  84. PDNS_webserver-allow-from: '127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8'
  85. PDNS_version_string: 'anonymous'
  86. PDNS_default_ttl: 1500
  87. PDNS_allow_axfr_ips: '127.0.0.0/8,192.0.0.0/8,10.0.0.0/8,172.0.0.0/8'
  88. PDNS_gmysql_host: npm-pdns-db
  89. PDNS_gmysql_port: 3306
  90. PDNS_gmysql_user: pdns
  91. PDNS_gmysql_password: pdns
  92. PDNS_gmysql_dbname: pdns
  93. depends_on:
  94. - npm-pdns-db
  95. networks:
  96. default:
  97. aliases:
  98. - ns1.pdns
  99. - ns2.pdns
  100. npm-pdns-db:
  101. image: mariadb:10.7.1
  102. container_name: "npm.pdns.db"
  103. environment:
  104. MYSQL_ROOT_PASSWORD: 'pdns'
  105. MYSQL_DATABASE: 'pdns'
  106. MYSQL_USER: 'pdns'
  107. MYSQL_PASSWORD: 'pdns'
  108. volumes:
  109. - npm_pdns_mysql_vol:/var/lib/mysql
  110. - /etc/localtime:/etc/localtime:ro
  111. - './dev/pdns-db.sql:/docker-entrypoint-initdb.d/01_init.sql:ro'
  112. npm-dnsrouter:
  113. image: jc21/dnsrouter
  114. container_name: "npm.dnsrouter"
  115. volumes:
  116. - ./dev/dnsrouter-config.json.tmp:/dnsrouter-config.json:ro
  117. volumes:
  118. npm_data_vol:
  119. npm_pdns_mysql_vol: