En este post se tratará de ver una de las maneras de instalación de nuestro proyecto con Rocket.Chat.
Publicado en April 18, 2021 by ManuelLoraRoman
Documentation post general
2 min LECTURA
Rocket.Chat dispone de tres imágenes oficiales, siendo la versión stable la que en principio vamos a utilizar.
Para bajarse alguna de las imagénes, vamos a ejecutar lo siguiente:
docker pull rocket.chat
Demo de la descarga:
Una vez bajada dicha imagen, en caso de querer ejecutar Rocket.Chat sobre systemd vamos a seguir los siguientes pasos:
docker network create rocketchat_default
Después, creamos dos servicios: el primero será el servicio para Mongodb y el otro, el servicio de Rocket.Chat.
[Unit]
Description=mongo
Requires=docker.service
After=docker.service
[Service]
EnvironmentFile=/etc/mongo <-- ficheros del servicio
User=manuel
Restart=always
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill mongo
ExecStartPre=-/usr/bin/docker rm mongo
ExecStartPre=-/usr/bin/docker pull mongo:3.2
ExecStart=/usr/bin/docker run \
--name mongo \
-v /media/manuel/Datos1/PROYECTO/mongo:/data/db \ <-- ruta del volumen para Mongodb
--net=rocketchat_default \
mongo:3.2 \
mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
ExecStop=-/usr/bin/docker kill mongo
ExecStop=-/usr/bin/docker rm mongo
[Unit]
Description=rocketchat
Requires=docker.service
Requires=mongo.service
After=docker.service
After=mongo.service
[Service]
EnvironmentFile=/etc/rocketchat <-- ficheros del servicio
User=manuel
Restart=always
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill rocketchat
ExecStartPre=-/usr/bin/docker rm rocketchat
ExecStartPre=-/usr/bin/docker pull rocketchat/rocket.chat:latest
ExecStart=/usr/bin/docker run \
--name rocketchat \
-v /media/manuel/Datos1/PROYECTO/rocketchat:/app/uploads \ <-- donde subir ficheros
-e MONGO_OPLOG_URL=mongodb://mongo:27017/local \
-e MONGO_URL=mongodb://mongo:27017/rocketchat \
-e ROOT_URL=https://sub.domain.xx \
--link mongo:mongo \
--net=rocketchat_default \
--expose 3000 \
rocketchat/rocket.chat:latest
ExecStop=-/usr/bin/docker kill rocketchat
ExecStop=-/usr/bin/docker rm rocketchat
Creados ambos servicios, vamos a iniciar el servicio de Mongodb y creamos el siguiente contenedor Docker:
docker run \
--name mongo-init-replica \
--link mongo:mongo \
--rm \
--net=rocketchat_default \
mongo:3.2 \
mongo mongo/rocketchat --eval "rs.initiate({ _id: 'rs0', members: [ { _id: 0, host: 'localhost:27017' } ]})"
sudo systemctl start rocketchat.service
Con esto, ya tendriamos nuestro servicio Rocket.Chat funcionando en una máquina Docker, pero funcionando desde systemd.
Como última aclaración, en caso de tener un proxy inverso, nos debemos asegurar que está añadido en la red creada anteriormente. Para ello, debemos añadir la siguiente línea en el archivo rocketchat.service:
ExecStartPre=-/usr/bin/docker network connect rocketchat_default Nginx
Ahora pasaremos a otro tipo de instalación.