https://docs.rocket.chat/docs/deploy-with-docker-docker-compose
Deploy with Docker & Docker Compose
- Print
- Light
- PDF
As of December 15, 2023, Rocket.Chat has ceased support for connections from cloud services and official mobile/desktop apps to workspaces running legacy versions outside our support window. Users on unsupported legacy servers are advised to upgrade to the latest Rocket.Chat version to ensure continued access to cloud, mobile, and desktop applications. Each Rocket.Chat version is supported for six months post-release.
Deploying Rocket.Chat with Docker and Docker-compose is a straightforward and highly recommended deployment method due to its simplicity and flexibility. This guide will walk you through the essential steps, whether you're a seasoned Docker expert or new to containerization, ensuring a smooth deployment for your Rocket.Chat workspace.
In this guide, you'll learn how to:
Preparation steps
Install Docker and Docker Compose
Ensure you have Docker and Docker-compose (v2 is required) installed and operational. If you don't have them installed, you can conveniently set them up using Docker's official helper script:
To run Docker commands without using sudo, add the current user to the Docker group. If you are unsure who the user is, check the current user by running:
Now run the following command. Substitute
$USER
with the result you get from executing the above command.
Deploy Rocket.Chat on Docker
Fetch the compose file
Go to your preferred directory and create a compose.yml
file and copy the content from our example.
Alternatively, you can use the curl
command to download the example compose.yml
file by executing this command:
Edit environment variables
Modifying the configurations in the compose file directly is strongly discouraged. Instead, use environment variables. You can set environment variables using a .env
file.
Remember to uncomment the variables you are updating in the
.env
file.
In your project directory, create a
.env
file with the following command and paste the contents of this example file.
If you cloned the GitHub repository, you can copy the
.env.example
to.env
with this command:
Set the
RELEASE
variable in the.env
to your desired Rocket.Chat version. See our releases page and available docker images. Keeping the default release aslatest
is not recommended.Edit
ROOT_URL
from the defaulthttp://localhost:3000
to match your domain name or IP address if you're deploying a production workspace.If you have a registration token to register the workspace automatically, you can add it to the
.env
file like this:
If you are using MongoDB Atlas as the database provider, edit the value of the
MONGO_URL
variable to be your connection string in this format:
Save the
.env
file and start up the container by executing this command:
This command will:
Start a MongoDB service named
mongodb
.Start a service
rocketchat
, which will also wait formongodb
to be ready.
MongoDB ensures continuous 24 x 7 operations and live backup, reducing the need for frequent restarts. Refer to the MongoDB documentation for proper server operation and management. Optionally, manage messages and configurations by uncommenting the volume mounts, and ensuring a data subdirectory is available for data storage and mounting.
Once the container is running, visit http://localhost:3000
on your browser. You can now explore your Rocket.Chat workspace and invite other users.
Start & stop Docker compose
To stop your workspace from running, execute this command:
To start your docker-compose container, run this command:
To see the log/status of your Rocket.Chat container, execute this command:
Rocket.Chat Docker images
You can use any of the following Docker images according to your needs:
Official image (stable and tested): The official Docker images repository is responsible for maintaining and controlling Rocket.Chat's official stable image through Docker. It is also reviewed by the Docker committee.
Latest release image: This image holds the latest Rocket.Chat updates on the Docker repository. The release may be from the
develop
ormaster
branch. You can use this to test some of the latest updates.
Using the
latest
image tag for production deployments is not recommended.
Preview image: The Rocket.Chat preview image deploys a container with a database inside. It's useful for quickly trying or running tests and does not require a dedicated database installation.
Specific release image: You can set up your Rocket.Chat workspace with a specific release image. Select the release you need from the Docker hub tags and use it to run the following command:
Bleeding-edge untested develop build image: This is an image maintained at Rocket.Chat's Docker repository. This update comes from the develop (untested) branch, which contains the latest updates for those who want to work with the newest features.
Update Rocket.Chat on Docker
Before you proceed, see the general guidelines for updating Rocket.Chat.
Updating the Rocket.Chat image doesn't affect your data since it exists in the Mongo image. Before proceeding with the update, ensure that the version of your MongoDB is compatible with the intended release.
Using Docker & Docker compose, you can update your rocketchat
docker image to the latest or preferred version of Rocket.Chat.
To update your Rocket.Chat version,
For a specific version, modify the
RELEASE
variable in the.env
file to point to the Docker image tag of that version. Alternatively, you can edit thecompose.yml
file to point to the desired Rocket.Chat version.
Changing version in .env
.env
Note that if you want to use the latest version for testing purposes, use
latest
as theRELEASE
variable in the.env
file. Alternatively, you can pull the Rocket.Chat image directly with thelatest
tag with this command:
Now, stop, remove, and restart the existing container with these commands:
See the official documentation for more details on Rocket.Chat Docker images.
Enable HTTPS
You can secure your Rocket.Chat Docker instance with TLS certificates from Let's Encrypt. Using Traefik as a reverse proxy, the certificates are automatically generated, enabling safe access to your Rocket.Chat instance via HTTPS on your specified domain.
To get HTTPS, ensure the correct A record (optionally CNAME) is set for your domain going to your server IP.
Update the following variables in your
.env
file. If you don't have one, create a .env file following our example.LETSENCRYPT_EMAIL
: Your required email for the TLS certificates.DOMAIN
: Your domain or subdomain name only. Avoid adding https:// or any trailing slashes. Confirm that this domain resolves to the server IP address.RELEASE
: Your preferred Rocket.Chat release. See the releases page to know more about our releases.ROOT_URL
: Set the value to " https://your-domain.com," replacing "your-domain.com" with the domain name you want to use.BIND_IP
: Set to127.0.0.1
.
Download the Traefik template by running the following command:
Recreate the existing Rocket.Chat container
Start traefik
Wait for the TLS certificates to generate and Rocket.Chat to restart. Then, access your Rocket.Chat instance securely at https://your-domain.com
, using the actual domain name you configured.
Docker Mongo backup and restore
To back up your MongoDB database in Docker,
Run the following command on your terminal to list out all running containers:
Take note of your mongo container name.
Run this command to dump the database into a binary file
db.dump
When successful, you should see db.dump
file in the current directory.
To restore the backup, run the following command:
You can export your database dump directly to MongoDB Atlas by simply running
Congratulations on successfully deploying Rocket.Chat using Docker! You can now communicate effortlessly with your team members on your workspace. Visit the accessing your workspace guide to configure your workspace and onboard other team members.
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/8118.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~