Docker コンテナ内での Cassandra の起動
次の手順で Cassandra のインストールをしました。
(コンテナ内で Bash を起動)
$ docker run -ti centos:7 /bin/bash
(Cassandra のインストールのための yum リポジトリを登録)
# cat > /etc/yum.repos.d/datastax.repo
[datastax]
name = DataStax Repo for Apache Cassandra
baseurl = http://rpm.datastax.com/community
enabled = 1
gpgcheck = 0
(Cassandra のインストール)
# yum install initscripts java-1.8.0-openjdk-devel cassandra22-tools -y
ところが、起動しようとすると su: cannot open session: Permission denied
とのログが出力されます。
(Cassandra の起動 - きちんと起動しているように見える)
# service cassandra start
Starting Cassandra: OK
(ところが Cassandra プロセスは起動していない)
# ps aux | grep java
root 190 0.0 0.0 9040 816 ? S+ 08:08 0:00 grep --color=auto java
(ログには Permission denied とある)
# cat /var/log/cassandra/cassandra.log
su: cannot open session: Permission denied
どうやら、起動スクリプト内で Cassandra ユーザーになろうとして失敗しているようです。
# su - cassandra
su: cannot open session: Permission denied
この問題はどのように修正すればよいでしょうか? /etc/init.d/cassandra
で強制的に Cassandra を root
で立ち上げるようにすれば起動するのですが、筋が良くないように思います。