Home

Published

- 5 min read

Raspberry Pi 3 Model B で GROWI を立ち上げる

img of Raspberry Pi 3 Model B で GROWI を立ち上げる

環境

  • Raspberry Pi 3 Model B
  • Raspberry Pi OS 64bit

はじめに

ここで起動できるGROWIのバージョンは4.0.7です

GROWIはMarkdownによるwikiページ作成が可能なOSSです。

ふとラズパイ使ったらお家wiki環境できるのかなと思い、最新の公式:growi-docker-compose で試してみましたが失敗してしまいました。

Dockerは全て起動しているように見えたけどその後ラズパイがフリーズ…何度やっても同じ。 起動時の調整はDockerfileの「—link」の記述を削除した程度。(起動中にその記載は古いと怒られた)

下記の記事を試したところ起動して表示を確認することができました。 途中ディレクトリ作成しないとあとでvolume削除しないといけなかったので、メモとして追記しています。

👉参考記事:ラズパイ上にDockerコンテナを使ってGrowiを簡単に構築する

起動〜画面表示まで

Docker,docker-composeのインストールは行なっている前提

👉Raspberry Pi 3 Model B でDocker環境にWordpressを立ち上げる

Raspberry Pi用に調整されたリポジトリを取得

   git clone https://github.com/temple1026/growi-docker-compose-pi.git growi

growi配下に必要なディレクトリ作成

※ここを行わなかったため、あとあとvolume削除することに🫠

   cd growi
sudo mkdir -p ./data/growi_data
sudo mkdir -p ./data/mongo_configdb
sudo mkdir -p ./data/mongo_db
sudo mkdir -p ./data/es_data

docler-compose.yml修正

⭐️の箇所を自分の環境に合わせる ここでは一つ前でディレクトリ作成したところにマウントするように変更した

   version: '3'

services:
  growi:
    build:
      context: .
      dockerfile: ./Dockerfile
    image: growi-pi:4.0.7 # Please change if you need
    container_name: growi
    ports:
      - 2828:3000 # ⭐️localhost only by default
      # - 3000:3000 # my setting
    links:
      - mongo:mongo
      - elasticsearch:elasticsearch
    depends_on:
      - mongo
      - elasticsearch
    environment:
      - MONGO_URI=mongodb://mongo:27017/growi
      - ELASTICSEARCH_URI=http://elasticsearch:9200/growi
      # - PASSWORD_SEED=password
      # - FILE_UPLOAD=mongodb   # activate this line if you use MongoDB GridFS rather than AWS
      # - FILE_UPLOAD=local     # activate this line if you use local storage of server rather than AWS
      # - MATHJAX=1             # activate this line if you want to use MathJax
      # - PLANTUML_URI=http://  # activate this line and specify if you use your own PlantUML server rather than public plantuml.com
      # - HACKMD_URI=http://    # activate this line and specify HackMD server URI which can be accessed from GROWI client browsers
      # - HACKMD_URI_FOR_SERVER=http://hackmd:3000  # activate this line and specify HackMD server URI which can be accessed from this server container
      # - FORCE_WIKI_MODE='public'    # activate this line to force wiki public mode
      # - FORCE_WIKI_MODE='private'   # activate this line to force wiki private mode

    command: 'dockerize
      -wait tcp://mongo:27017
      -wait tcp://elasticsearch:9200
      -timeout 120s
      npm run server:prod' # Changed 60s to 120s.
    # command: npm run server:prod
    restart: unless-stopped
    volumes:
      - growi_data:/data
    tty: true

  mongo:
    image: arm64v8/mongo:3.6
    container_name: mongo
    restart: unless-stopped
    volumes:
      - mongo_configdb:/data/configdb
      - mongo_db:/data/db

  elasticsearch:
    # image: webhippie/elasticsearch:6.4
    build:
      context: ./elasticsearch
      dockerfile: ./Dockerfile
    image: elasticsearch:6.6.1
    container_name: es
    command: sh bin/elasticsearch
    environment:
      - bootstrap.memory_lock=true
      - 'ES_JAVA_OPTS=-Xms256m -Xmx256m' # increase amount if you have enough memory
    ulimits:
      memlock:
        soft: -1
        hard: -1
    restart: unless-stopped
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - es_data:/usr/share/elasticsearch/data
      - ./elasticsearch/config:/usr/share/elasticsearch/config
    tty: true

volumes:
  growi_data:
    driver_opts:
      type: none
      device: /home/ユーザ名/growi/data/growi_data # ⭐️ Please change if you need.
      o: bind
  mongo_configdb:
    driver_opts:
      type: none
      device: /home/ユーザ名/growi/data/mongo_configdb # ⭐️
      o: bind
  mongo_db:
    driver_opts:
      type: none
      device: /home/ユーザ名/growi/data/mongo_db # ⭐️
      o: bind
  es_data:
    driver_opts:
      type: none
      device: /home/ユーザ名/growi/data/es_data # ⭐️
      o: bind

起動

すべてのコンテナが起動するまで30分ほど待つ

   sudo docker-compose up -d --build

表示確認

※コンテナ起動後5~8分ほど待つ

ラズパイIP:2828

おわりに

ページ操作自体は遅く感じることもなく動きました。 Dockerの設定できる人たちほんと尊敬です。

起動できたGROWIのバージョンは4.0.7と古めだったので、起動後にアップデートできないのかなと調べてみたらGROWIってバージョンが違うとデータ移行が難しかったり結構気を使わないといけないようで、普段使いするかどうかは悩みどころ…🫠

参考記事

ラズパイ上にDockerコンテナを使ってGrowiを簡単に構築する