在docker中为密码身份验证配置cassandra.yaml

时间:2018-05-07 08:00:15

标签: docker cassandra

有人能告诉我如何更改docker容器中的cassandra.yaml吗? 我想在docker中启用密码身份验证以进行cassandra访问。

2 个答案:

答案 0 :(得分:2)

如果您正在使用官方的Cassandra Docker镜像,那么您已经拥有了docker-entrypoint.sh。有关已定义的一些变量,请参阅:https://github.com/docker-library/cassandra/blob/master/docker-entrypoint.sh作为示例。

要在容器启动时包含这些内容,您可以:

  1. fork并编辑docker-entrypoint.sh,从(当前)第51行开始添加您自己的变量,如下所示:
  2. for yaml in \ broadcast_address \ broadcast_rpc_address \ [your_selected_yaml_variable] \ ...

    1. 在docker-compose.yml中包含您要覆盖的值,如下所示:
    2. environment: - CASSANDRA_SEEDS=DC1C1,DC1C2,DC2C1,DC2C2 - CASSANDRA_CLUSTER_NAME=Dev_Cluster - CASSANDRA_ENDPOINT_SNITCH=GossipingPropertyFileSnitch - CASSANDRA_[YOUR_SELECTED_YAML_VARIABLE]

答案 1 :(得分:0)

您可以创建一个docker入口点(基本上它是一个脚本文件,指示Docker在容器上复制并将其定义为入口点)。

COPY docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT ["bin/sh", "/docker-entrypoint.sh"]

在该文件中,您可以使用sed在cassandra.yaml文件中执行您喜欢的任何更改。

sed -ri '/^# data_file_directories:/{n;s/^#.*/'"    - $CASSANDRA_DATA_DIRECTORY"'/}' "$CASSANDRA_CONFIG/cassandra.yaml"

请注意,$ CASSANDRA_DATA_DIRECTORY和$ CASSANDRA_CONFIG是预先定义的一些变量。