代码之家  ›  专栏  ›  技术社区  ›  MeanStreet

使用脚本启动Cassandra时出现Docker root错误

  •  0
  • MeanStreet  · 技术社区  · 7 年前

    我想把卡桑德拉放进码头。

    如果我以结束Dockerfile

    CMD["cassandra", "-f"]
    

    一开始没问题。但当我使用脚本时:

    COPY ./launch_cassandra.sh /tmp/cassandra/launch_cassandra.sh
    CMD["sh", "/tmp/cassandra/launch_cassandra.sh"]
    

    具有 launch_cassandra.sh 仅包含:

    cassandra -f
    

    我得到以下错误:

    不建议以root用户或组身份运行Cassandra-请 使用其他系统用户启动Cassandra。

    为什么这些不相等?为什么脚本以root用户身份运行?

    2 回复  |  直到 7 年前
        1
  •  0
  •   MeanStreet    7 年前

    如上所述,我的Dockerfile扩展了官方文件(使用 FROM cassandra ),其中使用入口点脚本( docker-entrypoint.sh )设置一些变量。

    所以当CMD包含 cassandra ,但与脚本不同:这就是差异的来源。

        2
  •  0
  •   rodrigombs    3 年前

    如果要扩展cassandra映像,则需要创建一个cassandra用户(例如,名称可能不同,请参阅所需映像的Dockerfile https://github.com/docker-library/cassandra/blob/master/3.11/Dockerfile ).
    唯一缺少的是在Dockerfile上设置用户,例如:

    FROM cassandra:3.11.10
    USER cassandra
    CMD ["cassandra" "-f"]