NOM 服务器和持久化 Docker Compose

Docker Compose 可用于配置一组相关的容器作为服务,以进行实验或在测试环境中运行。

但 Docker 不建议将 Compose 用于生产环境。

以下是一组步骤,用于创建包含两个容器的 Compose 设置,以使用 NOM 服务器容器和企业版 Neo4j 持久化容器作为存储进行实验。

有关包含 NOM 持久化、NOM 服务器和托管 Neo4j 实例的 Docker Compose 环境的完整示例,请参阅Docker 首次使用指南

  • 定义一个使用企业版 Neo4j 镜像的存储服务。请遵循以下模板并替换相应的用户定义值。

    storage:
        hostname: <user defined>
        image: neo4j:<Neo4j version>-enterprise
        networks:
          - <user defined>
        ports:
          - <map http and bolt ports>
        environment:
          NEO4J_ACCEPT_LICENSE_AGREEMENT: "yes"
          NEO4J_AUTH: <user defined username>/<user defined password>
          NEO4J_server_default__advertised__address: <user defined>
          NEO4J_server_http_listen__address: <user defined>
          NEO4J_server_bolt_listen__address: <user defined to be used in the NOM server>
        healthcheck:
          test: [ "CMD-SHELL", "echo RETURN 1 | cypher-shell -a bolt://<value of NEO4J_server_bolt_listen__address> -u <user defined username> -p <user defined password> || exit 1" ]
  • 定义一个使用 NOM 服务器镜像的服务器服务。请遵循以下模板并替换相应的用户定义值。

      server:
        hostname: server
        image: neo4j/neo4j-ops-manager-server:latest
        networks:
          - <user defined but should be the same as storage service>
        ports:
          - "<user defined>:8080"
          - "<user defined>:9090"
        environment:
          SPRING_NEO4J_URI: <bolt address from the storage service defined before>
          SPRING_NEO4J_AUTHENTICATION_USERNAME: <username from the storage service defined before>
          SPRING_NEO4J_AUTHENTICATION_PASSWORD: <password from the storage service defined before>
          SERVER_SSL_KEY_STORE_TYPE: PKCS12
          SERVER_SSL_KEY_STORE: <path to a self-signed cert file with pfx extension mounted into this container>
          SERVER_SSL_KEY_STORE_PASSWORD: <user defined for mounted certs>
          GRPC_SERVER_SECURITY_KEY_STORE_TYPE: PKCS12
          GRPC_SERVER_SECURITY_KEY_STORE: <path to a self-signed cert file with pfx extension mounted into this container>
          GRPC_SERVER_SECURITY_KEY_STORE_PASSWORD: <user defined for mounted certs>
          CORS_ALLOWEDHEADERS: "*"
          CORS_ALLOWEDORIGINS: "http://localhost:[*],https://localhost:[*]"
        volumes:
          - <path to certs self-signed certs>:<mounted path to certs self-signed certs>
  • 定义服务并将其保存到 Compose 文件后,运行以下命令

    docker compose -f <compose file> up