MENU

M4 Mac miniのelasticsearchでSIGILL発生

elasticsearchがSIGILLで起動しない

M4 Mac miniを購入して嬉しく使っているのですが、そこで動かしているGrowiを7.1.6にバージョンアップしようとしたところelasticsearchSIGILLで起動しなくなってしまいました。

実際のログは、次のような内容です。

#
# A fatal error has been detected by the Java Runtime Environment:
# 
# SIGILL (0x4) at pc=0x0000ffff9034bb80, pid=7, tid=16
# 
(以下略)

platformを使用してlinux/amd64アーキテクチャーで実行

どうしたものかということで、ChatGPTに尋ねたりしながら悩んでいたのですが思い切ってplatformを導入してlinux/amd64としてCPUアーキテクチャーをエミュレーションして実行することにしました。

今回は、Growiを動かすということでgrowi-docker-composeを使っていますから、docker-compose.ymlファイルのelasticsearchplatform: linux/amd64の行を追加します。

elasticsearch:
  build:
    context: ./elasticsearch/v8
    dockerfile: ./Dockerfile
  platform: linux/amd64
  environment:

elasticsearchのビルドと実行

この状態でelasticsearchをビルドして起動します。

$ docker compose build elasticsearch

ビルドするとgrowi-docker-compose-elasticsearchというDockerコンテナーが作成されています。

growiを起動します。

$ docker compose up -d
[+] Running 4/4
✔ Network growi-docker-compose_default Created 0.0s
✔ Container growi-docker-compose-mongo-1 Healthy 10.7s
✔ Container growi-docker-compose-elasticsearch-1 Healthy 20.7s
✔ Container growi-docker-compose-app-1 Started 20.7s

M4 Mac miniでは、20秒ほどで起動しています。

M1 Macbook Proや、Raspberry Pi 5、ARM64のクラウドインスタンスで実行した場合には、このようなエラーが発生していませんのでM4 Mac mini固有の問題のようではあります。

そう言えば、以前にもエミュレーションを使ってGrowiを動かしたことがありました。

参考: 2023/01/11 GrowiをRaspberry Pi 4で無理やり動かす

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!
目次