运行 Cassandra 启动后的脚本 (Docker)

Running script after Cassandra starts (Docker)

我正在尝试 运行 Cassandra 启动后创建密钥空间的脚本。

这是我的 docker 撰写:

version: '3.6'

services:
  cassandra:
    container_name: cassandra
    image: bitnami/cassandra:3.11.2
    volumes:
        - ./cassandra_data:/bitnami
        - ./scripts/cassandra_init.sh:/cassandra_init.sh
    environment:
        - CASSANDRA_USER=${CASSANDRA_USERNAME}
        - CASSANDRA_PASSWORD=${CASSANDRA_PASSWORD}
        - CASSANDRA_CLUSTER_NAME=Testing
        - CASSANDRA_PASSWORD_SEEDER=yes
    entrypoint: ["/app-entrypoint.sh"]
    command: ["nami","start","--foreground","cassandra","/cassandra_init.sh"]
volumes:
  cassandra_data:

["nami","start","--foreground","cassandra"] 启动 Cassandra。如果我在不添加脚本的情况下启动容器,它就可以正常工作。

但是,如果我启动包含我的脚本的容器,我会在容器启动后收到此错误: nami ERROR Unknown command '/cassandra_init.sh'

我怎样才能做到这一点?

我想通了。

在 docker.compose 中我不得不调用脚本 init.sh 并调用它:

version: '3.6'

services:
  cassandra:
    container_name: cassandra
    image: bitnami/cassandra:3.11.2
    volumes:
        - ./cassandra_data:/bitnami
        - ./scripts/cassandra_init.sh:/init.sh
    environment:
        - CASSANDRA_USER=${CASSANDRA_USERNAME}
        - CASSANDRA_PASSWORD=${CASSANDRA_PASSWORD}
        - CASSANDRA_CLUSTER_NAME=Testing
        - CASSANDRA_PASSWORD_SEEDER=yes
    entrypoint: ["/app-entrypoint.sh"]
    command: ["/init.sh"]
volumes:
  cassandra_data:

脚本应如下所示:

#!/bin/bash
nami start cassandra
echo "script stuff here to run after cassandra starts"