MacでRefBox(まとめ)

MacでRefBox – その2のまとめです.
■準備
まず,gitディレクトリを作って,チームのファイルとrcll-get-startedを取ってきます.

mkdir ~/git
cd ~/git
git clone https://github.com/babytigers-r/rcll
git clone https://github.com/robocup-logistics/rcll-get-started
cd rcll-get-started

修正作業の内容をパッチファイルにしましたので,そのパッチを当てます.
パッチの中身の説明は後半に書きます.

patch -p1 < ~/git/rcll/scripts/rcll-get-started_forMac.patch

これで,rcll-get-started のsetup.shが使えるようになります.
ただし,ターミナル上で新たなコマンド(rc_startやrc_stopなど)は使えませんので,必要なコマンドはlocal_setup.sh に書くようにしてください.

cd ~/git/rcll-get-started
./setup.sh

これで,最新のRefBoxをApple Silicon(M1からM4)のMacOS上で動かすことができます.

あと,screenもエラーを吐いていますが,screen -rをすればDockerを動かしているターミナルに接続できます.
停止は,「Ctrl+C」を二回押す必要がありますが,dockerそのものを停止していないので,
実際に止めるには,Docker Desktopのアプリ上で止めてください.
(むしろ,そこで止めないとずっと動いたままになり,再度setup.shを実行したら二重起動になってしまいます)


以下,パッチの中身の解説です.
■削除
compose_files/mongodb.yaml を削除します(←半分力技での対応方法で申し訳ないです)

rm compose_files/mongodb_yaml

■修正
以下の部分を修正します.
・compose_files/refbox.yaml の設定を変更します.
services: の続きにmongodbの設定を追記します.

 services:
  mongodb:
    container_name: "mongodb"
    # network_mode: "host"
    image: ${MONGODB_IMAGE}:${MONGODB_TAG}
    restart: "no"
    command: mongod --port ${RC_MONGODB_PORT}
    volumes:
      - '${RC_MONGODB_DATA_DIR}:/data:z'

mongodb-check: の部分のnetwork_modeをコメントアウトして,mongodbへの依存性を追記します.

   mongodb-check:
     container_name: mongodb-check
     image: ${MONGODB_IMAGE}:${MONGODB_TAG}
    # network_mode: "host"
    depends_on:
      - mongodb
     restart: on-failure:10

refbox: の部分のnetwork_modeをコメントアウトして,ポートの情報を追記します.

   refbox:
     container_name: refbox
     image: "${REFBOX_IMAGE}:${REFBOX_TAG}"
    # network_mode: "host"
    ports:
      - 1234:1234
     depends_on:
       mongodb-check:
         condition: service_completed_successfully

・config/refbox/comm/default_comm.yaml の設定を変更します(これは,手元で動かすためなので,Mac関係なく,普段も変更する部分です)

     # Do not specify both!
     public-peer:
       # host: !ipv4 192.168.122.255
       # host: !ipv4 172.26.255.255
       host: !ipv4 127.0.0.1
       # port: !udp-port 4444
       send-port: !udp-port 4444
       recv-port: !udp-port 4445
 
     cyan-peer:
       # host: !ipv4 192.168.122.255
       # host: !ipv4 172.26.255.255
       host: !ipv4 127.0.0.1
       # port: !udp-port 4441
       send-port: !udp-port 4441
       recv-port: !udp-port 4446
 
     magenta-peer:
       # host: !ipv4 192.168.122.255
       # host: !ipv4 172.26.255.255
       host: !ipv4 127.0.0.1
       # port: !udp-port 4442
       send-port: !udp-port 4442
       recv-port: !udp-port 4447

・config/refbox/mongodb/default_mongodb.yaml の設定を変更します.
MONGODBのバージョンを7.0からlatestにしました(7.0でなぜ動かないのかは不明…).

 export MONGODB_BACKEND_TAG=latest
 export MONGODB_TAG=latest

docker-composeコマンドはなくなったので,composeオプションへと変更します(ここのダブルクォーテーションは重要!)

 # compose command (change in case you use alternative tools like podman
export REFBOX_COMPOSE_COMMAND="docker compose"

コンテナ内のネットワーク名を指定します.

 export RC_MONGODB_PORT=27017
 export RC_MONGODB_HOST=mongodb
 export RC_MONGODB_URI=mongodb://${RC_MONGODB_HOST}:${RC_MONGODB_PORT}

これで動くようになるはずです.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*