« ボンネットをエア抜き+軽量FRPに替えました | メイン | squareレシートの文字の小ささに身もだえる »
2025年8月18日
RocketChatをdocker版に移す >>Linux | >>サーバ
RocketChatのリリースバージョンのサポート期限が短くなりました。
短くなることだけならいいのですが、依存するライブラリが上がることもそれなりにありまして...
2018年の0.69くらいからCentosのソースインストールで付き合い続け、LIBCが上がるためにBaseOSを上げることもありましたが、Alma8で次は9にっていうのも高頻度で追うのがしんどい。彼らの方もDocker推奨ということを書いていて、書いてあるからなおのこと容赦なく依存ライブラリも上げてくる。しかたないなー、dockerに移すか―ということで作業します。
mongodをdocker内ではなく外部で立てるのが本当は推奨らしいので、mongodはそのまま生かしておいて、docker環境作って接続できるようにする。
・mongodにあるデータはそのままでok、mongodの設定も変更しない
・BaseOSで動いていたRocketChatを停止する。
・Dockerでインストール
・docker-compose.ymlからmongodのとこはコメントアウトする、${MONGO_URL}が変数で入ってなかったりするので書き替えとく、固定ipにしといた方がfirewall的にやりやすいので固定記述にする(plesk環境対策)
docker-compose.ymlはこんな感じ
volumes: mongodb_data: { driver: local } networks: my-network: driver: bridge name: test_network_name ipam: driver: default config: - subnet: 172.18.0.0/24 services: rocketchat: image: ${IMAGE:-registry.rocket.chat/rocketchat/rocket.chat}:${RELEASE:-latest} restart: always labels: traefik.enable: "true" traefik.http.routers.rocketchat.rule: Host(`${DOMAIN:-}`) traefik.http.routers.rocketchat.tls: "true" traefik.http.routers.rocketchat.entrypoints: https traefik.http.routers.rocketchat.tls.certresolver: le environment: #MONGO_URL: mongodb://mongodb:27017/rocketchat?replicaSet=rs0 MONGO_URL: ${MONGO_URL} ROOT_URL: ${ROOT_URL:-http://localhost:3000} PORT: ${PORT:-3000} DEPLOY_METHOD: docker DEPLOY_PLATFORM: ${DEPLOY_PLATFORM:-} REG_TOKEN: ${REG_TOKEN:-} #depends_on: # - mongodb expose: - ${PORT:-3000} ports: - "${BIND_IP:-0.0.0.0}:${HOST_PORT:-3000}:${PORT:-3000}" volumes: - /opt/Rocket.Files:/opt/Rocket.Files networks: my-network: ipv4_address: 172.18.0.3 # mongodb: # image: docker.io/bitnami/mongodb:${MONGODB_VERSION:-6.0} # restart: always # volumes: # - ${MONGODB_HOST_PATH:-mongodb_data}:/bitnami/mongodb # environment: # MONGODB_REPLICA_SET_MODE: primary # MONGODB_REPLICA_SET_NAME: ${MONGODB_REPLICA_SET_NAME:-rs0} # MONGODB_PORT_NUMBER: ${MONGODB_PORT_NUMBER:-27017} # MONGODB_INITIAL_PRIMARY_HOST: ${MONGODB_INITIAL_PRIMARY_HOST:-mongodb} # MONGODB_INITIAL_PRIMARY_PORT_NUMBER: ${MONGODB_INITIAL_PRIMARY_PORT_NUMBER:-27017} # MONGODB_ADVERTISED_HOSTNAME: ${MONGODB_ADVERTISED_HOSTNAME:-mongodb} # MONGODB_ENABLE_JOURNAL: ${MONGODB_ENABLE_JOURNAL:-true} # ALLOW_EMPTY_PASSWORD: ${ALLOW_EMPTY_PASSWORD:-yes}
.envはこんなのが書けてればたぶんok
RELEASE=7.8.2 MONGO_URL=mongodb://固定ip:27017/rocketchat?replicaSet=rs01&directConnection=true&ssl=false&authSource=admin
mongodにデータが入ってるのでmongodにdokerから接続さえできればこれで移設完了です。dockerのipから接続させるところ、.ymlの書き方で悩んだ感じですね。。。。
plesk環境下で動かしたいときは上記に追加で1.パネルでドメイン作成
2.Let's encryptでSSLいれる
3.Apache および nginx の設定で、proxymode をoffにして一旦Save(一旦saveしないと次のdirectiveでエラーになる。)
4.nginx 追加ディレクティブを記載する
location / { proxy_pass http://127.0.0.1:3000/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; }
これでPlesk環境でも接続させられるようになります。
トラックバック
現在、この記事はトラックバックを受け付けておりません。
コメント
この記事へコメントを投稿する。
コメントは管理人が承認後に掲載されます。