stack.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. # GeoNetwork
  2. #
  3. # Access via "http://localhost:8080/geonetwork" (or "http://$(docker-machine ip):8080/geonetwork" if using docker-machine)
  4. #
  5. # Default user: admin
  6. # Default password: admin
  7. version: '3.8'
  8. volumes:
  9. geonetwork:
  10. esdata:
  11. pgdata:
  12. pglog:
  13. services:
  14. geonetwork:
  15. image: geonetwork:4.4
  16. healthcheck:
  17. test: curl http://localhost:8080/
  18. interval: 5s
  19. timeout: 5s
  20. retries: 30
  21. restart: always
  22. volumes:
  23. - geonetwork:/catalogue-data
  24. depends_on:
  25. database:
  26. condition: service_healthy
  27. ports:
  28. - 8080:8080
  29. environment:
  30. WEBAPP_CONTEXT_PATH: /geonetwork
  31. DATA_DIR: /catalogue-data
  32. TZ: Europe/Amsterdam
  33. JAVA_OPTS: >-
  34. --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
  35. -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true
  36. -Xms512M -Xss512M -Xmx2G -XX:+UseConcMarkSweepGC
  37. -Djetty.httpConfig.requestHeaderSize=32768
  38. -Dorg.eclipse.jetty.server.Request.maxFormContentSize=500000
  39. -Dorg.eclipse.jetty.server.Request.maxFormKeys=4000
  40. # For remote debug
  41. # -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
  42. GN_CONFIG_PROPERTIES: >-
  43. -Dgeonetwork.dir=/catalogue-data
  44. -Dgeonetwork.formatter.dir=/catalogue-data/data/formatter
  45. -Dgeonetwork.schema.dir=/opt/geonetwork/WEB-INF/data/config/schema_plugins
  46. -Dgeonetwork.indexConfig.dir=/opt/geonetwork/WEB-INF/data/config/index
  47. -Dgeonetwork.schemapublication.dir=/opt/geonetwork/WEB-INF/data/resources/schemapublication
  48. -Dgeonetwork.htmlcache.dir=/opt/geonetwork/WEB-INF/data/resources/htmlcache
  49. -Des.host=elasticsearch
  50. -Des.protocol=http
  51. -Des.port=9200
  52. -Des.url=http://elasticsearch:9200
  53. -Des.username=
  54. -Des.password=
  55. -Dgeonetwork.ESFeaturesProxy.targetUri=http://elasticsearch:9200/gn-features/{_}
  56. -Dgeonetwork.HttpDashboardProxy.targetUri=http://kibana:5601
  57. GEONETWORK_DB_TYPE: postgres-postgis
  58. GEONETWORK_DB_HOST: database
  59. GEONETWORK_DB_PORT: 5432
  60. GEONETWORK_DB_NAME: geonetwork
  61. GEONETWORK_DB_USERNAME: geonetwork
  62. GEONETWORK_DB_PASSWORD: geonetwork
  63. database:
  64. image: postgis/postgis:16-3.4
  65. environment:
  66. POSTGRES_USER: geonetwork
  67. POSTGRES_PASSWORD: geonetwork
  68. POSTGRES_DB: geonetwork
  69. command: [postgres, -c, log_statement=all, -c, logging_collector=true, -c, log_file_mode=0644,
  70. -c, log_directory=/var/log/postgresql, -c, log_filename=postgresql.log]
  71. healthcheck:
  72. test: [CMD-SHELL, pg_isready -U postgres]
  73. interval: 5s
  74. timeout: 5s
  75. retries: 5
  76. volumes:
  77. - pgdata:/var/lib/postgresql/data
  78. - pglog:/var/log/postgresql
  79. elasticsearch:
  80. image: elasticsearch:7.17.15
  81. ports:
  82. - 9200:9200
  83. ulimits:
  84. memlock:
  85. soft: -1
  86. hard: -1
  87. nofile:
  88. soft: 65536
  89. hard: 65536
  90. healthcheck:
  91. test: curl -s http://localhost:9200 >/dev/null || exit 1
  92. interval: 10s
  93. timeout: 2s
  94. retries: 10
  95. start_period: 2m
  96. environment:
  97. ES_JAVA_OPTS: -Xms1G -Xmx1G
  98. discovery.type: single-node
  99. volumes:
  100. - esdata:/usr/share/elasticsearch/data
  101. kibana:
  102. image: kibana:7.17.15
  103. environment:
  104. SERVER_NAME: kibana
  105. ELASTICSEARCH_URL: http://elasticsearch:9200/
  106. SERVER_BASEPATH: /geonetwork/dashboards
  107. SERVER_REWRITEBASEPATH: 'false'
  108. KIBANA_INDEX: .dashboards
  109. XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED: 'true'
  110. depends_on:
  111. elasticsearch:
  112. condition: service_healthy