compose.yaml 3.5 KB

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