1. ホーム
  2. ドッカー

UbuntuでDockerインストールしたgogsは、サービスを時々再起動するとアクセスできなくなります。

2022-03-03 02:56:54

1. コンテナインスタンスの中に入る

docker exec -it XXXXXX bash

XXXXXXはContainerIDまたはNameです。

docker ps -a で確認できます。

例 docker exec -it gogs2020 bash

docker exec : Execute the command in the running container
-d :detached mode: run in the background
-i :keep STDIN open even if not attached
-t :assign a pseudo terminal

2. コンテナインスタンス内のログを見る

インストール時に設定したデータディレクトリは、コンテナの外でも見ることができますが、複数のインスタンスがある場合は、.............................です。そこで、インスタンス内から見るには

tail -f log/gogs.log

2020/11/09 02:45:27 [FATAL] [... .o/gogs/internal/route/install.go:75 GlobalInit()] Failed to initialize ORM engine: open database: Error 1045: Access denied for user 'root'@' 172.18.0.4' (using password: YES)
2020/11/09 02:45:28 [ INFO] Gogs 0.13.0+dev
2020/11/09 02:45:28 [FATAL] [.... .o/gogs/internal/route/install.go:75 GlobalInit()] Failed to initialize ORM engine: open database: Error 1045: Access denied for user 'root'@' 172.18.0.4' (using password: YES)
2020/11/09 02:45:29 [ INFO] Gogs 0.13.0+dev
2020/11/09 02:45:29 [FATAL] [.... .o/gogs/internal/route/install.go:75 GlobalInit()] Failed to initialize ORM engine: open database: Error 1045: Access denied for user 'root'@' 172.18.0.4' (using password: YES)


ご覧の通り、私の問題は docker を使ってインストールした mysql サービスにアクセスできないことです。

別の端末を開く

docker inspect XXXXX を実行します。
XXXXXXはコンテナIDまたは名前です。

例えば、docker inspect mysql2020では、mysqlの"IPAddress"が"172.18.0.5"になったことがわかります。

サービス再起動後にdockerがmysqlに割り当てるIPが変わっていることがわかったので、固定IPを設定するか、gogsの設定ファイルを修正します。

3. dockerインスタンスgogsの設定ファイルを修正します。

元の端末に戻る(コンテナインスタンス内 Step1)

cd /data/gogs/conf
vi app.ini

修正後 

exit インスタンスを終了する

その後、インスタンスを再起動します。

時代へのオマージュ