2023年1月11日 GrowiがRaspberry Piにも対応しました。公式のDockerコンテナーが”linux/arm64″対応としても公開されています!
これで、以下の「Growiをクローンしてビルドする」作業をしないでも、v6.0.2からは公式のDockerコンテナーをプルすれば大丈夫です!
昨年末は、GrowiをRaspberry Pi 4でビルドするとエラーが発生していたこともあり次のような記事を書いていました。
2022/12/22 GrowiをRaspberry Pi 4で無理やり動かす
Dockerとdocker-composeでのマルチプラットフォーム機能を見るためには、面白い内容だったかとは思います。
ここで、本年の1月5日に公開されているGrowiでは、マルチプラットフォーム機能を使わなくてもRaspberry Pi 4で「普通に」ビルドして動かすことができるようになっています。2023年1月7日にリリースページが更新されてv6.0.1が正式に公開されました。注1
そこで、「GrowiをRaspberry Pi 4で普通に動かす」方法を簡単に見ていきます。
注1: 2023年1月11日に、Growi v6.0.2が”linux/arm64″に対応したとのアナウンスがありました。現在では、docker pull weseek/growi:6.0.2を実行すれば入手することが出来ます。これで、growi-docker-composeのappのFROM行をweseek/growi:6.0.2に合わせればdocker compose build appするだけで動かせるようになります。
Growiをクローンしてビルドする
GitHubからGrowiをクローンします。
$ git clone https://github.com/weseek/growi.git
まずはビルドしますが、現在使用している環境としてはRaspberry Pi 4のメモリー8GBをSSDブートして4GBのswapを構成しています。また、Dockerはbuildxを有効化しています。
$ docker build -f packages/app/docker/Dockerfile -t growi:6.0.1 .
ビルドしたイメージは、v5よりもかなり大きくなっています。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
growi 6.0.1 a2564e76dd0c 1 hours ago 2GB
growi-docker-composeをクローンする
GitHubからgrowi-docker-composeをクローンします。
$ git clone https://github.com/weseek/growi-docker-compose.git
DockerfileがGrowiのv5用でDockerizeがamd64対応となっていますから、Raspberry Pi用に修正します。
FROM growi:6.0.1
公式のDockerコンテナーを使う場合には、ARG version=6にすれば大丈夫になりました。
ARG version=6
FROM weseek/growi:$(version)
またDockerizeをダウンロードしている部分をRaspberry Pi用としてarmhfに修正します。
curl -sL https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-armhf-$DOCKERIZE_VERSION.tar.gz
docker-compose.ymlファイルを修正する
これは、お好みになるかと思いますが。docker-compose.ymlファイルの待受ポート番号を修正して、環境変数のMATHJAX=1を有効化します。また環境に合わせてFILE_UPLOADの内容を設定しておきます。その他の環境変数などは、必要に応じて修正します。
GrowiとElasticSearchのDockerコンテナーをビルドする
GrowiとElasticSearchのDockerコンテナーをビルドします。
$ docker compose build
また、MongoDBもプルしておきます。
$ docker compose pull mongo
Growiを起動する
準備が出来ましたから、Growiを起動します。
$ docker compose up -d
Growiの初期化などでしばらく待ってからブラウザーでアクセスします。
簡単ですが、前回の「無理やり動かす」方式ではなく、Raspberry Pi 4用のDockerコンテナーをビルドして動かすことが出来ました。