以前 QNAP に gitea を入れたという話を書いたのですが、その続きです。
続きというか、ある時 gitea の web コンテナが停止していることが判明し、どうやっても起動しなくなって困ったという話からの、結局 Container Station だけで対応しようとすると無理があるので、素直に docker
コマンド使った方が楽ですよ、という話です。
経緯
ある日 gitea のダッシュボードにアクセスしようとしたらエラーでアクセスできず、 QNAP の Container Station を開いたら web のコンテナが停止状態になってました。
で、画面上の「開始」ボタンや「再起動」ボタンを押しても起動しない。
さらに、Container Station で得られる情報をみても特に何が原因かわからない。
ログを見ても特に情報なし、動いていた時点までの情報はわかりますが、停止状態になってしまったコンテナがなぜ開始できないのかはわかりません。。。
いろいろやったのですが、さっぱりわからず。
ssh で入ってみたら ssh が原因であることがわかった
んで、そういえば QNAP は ssh で入れるから、ssh で入ったら何かわかるかな?っと思い、入ってみました。
まずは、 docker ps -a
で web のコンテナID調べつつ、状態を見てみると、確かに止まってました。
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9f137b13a68d gitea/gitea:latest "/usr/bin/entrypoint…" 2 months ago Exited (128) 10 days ago gitea2_web_1
9ec873f6778f mariadb:10 "docker-entrypoint.s…" 2 months ago Up 3 days 3306/tcp gitea2_db_1
Exited (128)
とかなってるので、エラーっぽい・・・
良くわからないので、 とりあえず何も考えず docker start
。
$ docker start 9f137b13a68d
Error response from daemon: driver failed programming external connectivity on endpoint gitea2_web_1 (xxxxxx): listen tcp4 0.0.0.0:22: bind: address already in use
Error: failed to start containers: 9f137b13a68d
listen tcp4 0.0.0.0:22: bind: address already in use
みたいなエラーが・・・
そういえば、 gitea も ssh 使うよなっと。。。
そして今 ssh してるよな、っと。
というわけで、QNAP の ssh のポートを 22 から別なポートに変更して終わり。
余談ですが、ボリュームのリサイズが数日待っても終わらない状態になってしまい、QNAP のリモートサポートを受ける事になり、その一環で ssh を有効にしたことがあったのですが、そのサポートを受けたあたりから gitea が停止していました。
それまでは QNAP の ssh は無効にしていたので gitea とぶつかってなかったのですが、QNAP 側でも ssh を有効にしてしまったので、おかしな状況になったのかなと。
既に使ってるポートを有効にできるんだ・・・という感じですが。
結論
というわけで Container Station で問題が起きた時は、ssh で QNAP にアクセスして docker コマンド使った方が圧倒的に楽だなと。
Container Station で docker のエラーを見れたら楽なのに・・・
ちなみに、 docker コマンドは実行する内容によっては docker-compose.yml
の場所が分からないと実行できないですが、 QNAP の Container Station で作成したアプリケーションのデーターは /share/Container/container-station-data/application/
にあるっぽいです。