cry*_*net 5 neo4j docker kubernetes docker-compose kompose
我想从 docker-compose 转到 kubernetes。我已经有一个 docker-compose 和 docker 镜像,工作得很好。现在我很难将它部署到 kubernetes,特别是使用 neo4j...
这是我的docker-compose.yaml
:
version: '3'
services:
neo4j:
image: neo4j
ports:
- '7474:7474'
- '7687:7687'
environment:
- NEO4J_AUTH=${NEO4J_USERNAME}/${NEO4J_PASSWORD}
volumes:
- neo4j_data:/data
overseen:
image: cryxnet/crawnet-overseen
ports:
- '5000:5000'
environment:
- NEO4J_USERNAME=${NEO4J_USERNAME}
- NEO4J_PASSWORD=${NEO4J_PASSWORD}
- NEO4J_CONNECTION_URI=${NEO4J_CONNECTION_URI}
- FLASK_APP=${FLASK_APP}
- FLASK_DEBUG=${FLASK_DEBUG}
depends_on:
- neo4j
dashboard:
image: cryxnet/crawnet-dashboard
ports:
- '3000:3000'
environment:
- FLASK_APP_URL=${FLASK_APP_URL}
depends_on:
- overseen
volumes:
neo4j_data:
Run Code Online (Sandbox Code Playgroud)
我用kompose转换了上面的 compose 。
API 和仪表板工作得很好,但 Neo4j 总是失败。
我做到了kubectl logs neo4j
,这就是我得到的:
Failed to read config: Unrecognized setting. No declared setting with name: PORT.7687.TCP.PORT. Cleanup the config or disable 'server.config.strict_validation.enabled' to continue.
Run with '--verbose' for a more detailed error message.
Run Code Online (Sandbox Code Playgroud)
Kubernetes 以环境变量的形式在每个容器中存储有关其命名空间中的服务的各种信息。此信息包括服务端口等,其环境变量的形式为<svc-name>_PORT_<d+>_TCP_PORT
。
由于您的服务名为,因此会创建neo4j
一个环境变量,但 Neo4J 会将所有以 开头的环境变量解释为配置参数。因此它抱怨不存在这样的设置。NEO4J_PORT_7687_TCP_PORT
NEO4J_
解决方案是:
NEO4J_server_config_strict__validation_enabled=false
来停止这些严格检查(如错误消息中所述)neo4j
其他名称,这将避免触发此检查 归档时间: |
|
查看次数: |
625 次 |
最近记录: |