« ボンネットをエア抜き+軽量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環境でも接続させられるようになります。
トラックバック
現在、この記事はトラックバックを受け付けておりません。
コメント
この記事へコメントを投稿する。
コメントは管理人が承認後に掲載されます。
この記事をTwitterでみんなに教える。