У меня запущен контейнер cassandra, в который я перезаписываю файл cassandra.yaml обновленным свойством:
authenticator: PasswordAuthenticator
вместо
authenticator: AllowAllAuthenticator
Это позволит мне создать нового суперпользователя на новом экземпляре.
Теперь, после этого экземпляра, я создаю новый образ с именем cassandra-new, который имеет новый файл cassandra.yaml. Поэтому, когда я начну, это позволит мне создать новую роль для May Cassandra DB.
Проблема в том, что я должен вручную войти в экземпляр:
docker exec -it cassandra-new /bin/bash
Затем я должен вручную ввести:
cqlsh -u cassandra -p cassandra
И тогда я могу написать свой сценарий:
CREATE ROLE IF NOT EXISTS some WITH SUPERUSER = true AND LOGIN = true AND PASSWORD = 'supersome';
LIST ROLES;
Как я могу сделать это автоматически без ENTRYPOINT? (Потому что я уже пробовал это в течение 2 дней, и я устал от этого - не работает)
(Пожалуйста, укажите код вместо слов, потому что я новичок.)
Dockerfile создается сценарием оболочки:
if [[ ! -e Dockerfile ]]; then
touch Dockerfile
cat >> Dockerfile << EOF
FROM cassandra:latest
COPY cassandra.yaml cassandra:etc/cassandra/cassandra.yaml
EOF
fi
docker-entrypoint.sh не был изменен, поэтому он такой же, как и файл по умолчанию, предоставленный последним образом Кассандры.