首页 > 解决方案 > 如何在 Dockerfile 中运行进程并在调用下一个命令时保持运行

问题描述

我想用 cassandra 创建一个 docker 映像,其中已经有一些键空间/表/数据。该镜像是测试所必需的,我们需要的数据非常多,所以我不想将它加载到 docker-entrypoint.sh 中,这样容器就会快速启动。

这是我简化的 Dockerfile,但显然它不起作用:

FROM cassandra:3.11

COPY cql cql

RUN cqlsh -f /cql/001_create_keyspace.cql 

正如我刚刚了解到的,当我尝试发出RUN cqlsh.

有什么方法可以运行它,加载数据,然后停止 cassandra?或者有没有其他方法可以使用已经加载的数据创建 cassandra 图像?

标签: dockerdockerfile

解决方案


您可以将数据导入正在运行的容器中,提交该容器,从而创建一个新图像。


推荐阅读