Docker 使用脚本启动 Cassandra 时出现根错误
Docker root error when starting Cassandra with a script
我正在尝试在 Docker 中启动 Cassandra。
如果我的 Docker 文件以
结尾
CMD["cassandra", "-f"]
开始没问题。但是,当我使用脚本执行此操作时:
COPY ./launch_cassandra.sh /tmp/cassandra/launch_cassandra.sh
CMD["sh", "/tmp/cassandra/launch_cassandra.sh"]
with launch_cassandra.sh
仅包含:
cassandra -f
我收到以下错误:
Running Cassandra as root user or group is not recommended - please
start Cassandra using a different system user.
为什么这些不等价?为什么脚本 运行 是根目录?
如上面评论所述,我的 Dockerfile 扩展了官方文件(使用 FROM cassandra
),其中使用入口点脚本 (docker-entrypoint.sh
) 来设置一些变量。
所以这些确实是在 CMD 包含 cassandra
时设置的,但不是通过脚本设置的:这就是差异的来源。
如果您正在扩展 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"]
我正在尝试在 Docker 中启动 Cassandra。
如果我的 Docker 文件以
结尾CMD["cassandra", "-f"]
开始没问题。但是,当我使用脚本执行此操作时:
COPY ./launch_cassandra.sh /tmp/cassandra/launch_cassandra.sh
CMD["sh", "/tmp/cassandra/launch_cassandra.sh"]
with launch_cassandra.sh
仅包含:
cassandra -f
我收到以下错误:
Running Cassandra as root user or group is not recommended - please start Cassandra using a different system user.
为什么这些不等价?为什么脚本 运行 是根目录?
如上面评论所述,我的 Dockerfile 扩展了官方文件(使用 FROM cassandra
),其中使用入口点脚本 (docker-entrypoint.sh
) 来设置一些变量。
所以这些确实是在 CMD 包含 cassandra
时设置的,但不是通过脚本设置的:这就是差异的来源。
如果您正在扩展 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"]