Запуск сценария после запуска Cassandra (Docker) - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь запустить сценарий после запуска Cassandra, который создаст пространство ключей.

Вот мой состав докера:

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'

Какя могу достичь этого?

1 Ответ

0 голосов
/ 04 июня 2018

Я понял это.

В 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"
...