【Docker项目实战】使用Docker部署rmoments简单朋友圈应用
@TOC
一、rmoments介绍
1.1 rmoments项目简介
rmoments 是一个基于原版 moments 构建的社交平台复刻版本,旨在为用户提供一个多用户互动的环境。它不仅继承了原版的所有特性,还特别强化了多用户的交互体验,使得个人和团队能够更方便地分享生活点滴、创意作品或任何想要记录的内容。
1.2 主要特点
- 
多用户支持:与原版不同,rmoments 允许多个用户注册并使用平台,每个用户都可以创建自己的内容,进行个性化设置。
 - 
互动功能:包括匿名评论和点赞,增强了用户之间的互动性,同时保护了那些希望保持匿名的用户隐私。
 - 
多媒体集成:轻松引入网易云音乐、B站视频以及外部链接,丰富内容形式;支持 Markdown 格式化文本(部分),便于撰写有格式的文章。
 - 
个性化定制:允许用户自定义头图、个人头像及网站标题等,让每个人的页面独一无二。
 - 
云端存储:提供 S3 兼容的云存储服务用于上传图片,同时也兼容本地存储方案,确保数据的安全性和灵活性。
 - 
移动设备友好:针对手机进行了优化适配,无论是在桌面端还是移动端都能获得良好的浏览体验。
 - 
暗黑模式:内置暗黑主题,减少夜间使用时的眼睛疲劳。
 - 
数据库管理:采用 SQLite 数据库,方便随时备份恢复,保证数据安全。
 - 
第三方服务整合:如豆瓣读书/电影,扩展了内容来源,让用户可以分享更多类型的信息。
 - 
地理位置服务:自动获取位置信息,帮助用户标记他们的活动地点。
 - 
人机验证:实现了几乎无感的人机验证机制,保障社区免受机器人骚扰的同时不影响用户体验。
 - 
消息通知:通过邮件或站内信推送重要更新,不错过任何动态。
 - 
内容组织:支持标签(Tag)功能,@提及他人,以及设置查看权限(例如私密或特定用户可见),使信息管理和分享更加有序。
 - 
图片排序:上传后的图片可以通过拖动来调整顺序,简化了相册整理过程。
 
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 项目名称 | 
|---|---|---|---|---|
| jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS 24.0.7 | rmoments应用 | 
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署rmoments社交平台。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2025-01-06 14:00:01 UTC; 34min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 918 (dockerd)
      Tasks: 16
     Memory: 106.8M
        CPU: 3.741s
     CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
root@jeven01:~#  docker -v
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~#  docker compose version
Docker Compose version v2.19.1
四、下载rmoments镜像
执行以下命令,拉取以下rmoments镜像。
root@jeven01:~# docker pull ranjie/rmoments:v0.4.1_with_redis
v0.4.1_with_redis: Pulling from ranjie/rmoments
c6cf28de8a06: Pull complete
490dedf223e2: Pull complete
712cce81897f: Pull complete
32579adc17be: Pull complete
7c8266ca5e11: Pull complete
e321cdb3a533: Pull complete
9fbc18b9ea63: Pull complete
9617aee8fa9c: Pull complete
41bcc25b76c0: Pull complete
db5edf39e89e: Pull complete
cd6e3a1087ba: Pull complete
1f038e25e215: Pull complete
2aad9e2aa429: Pull complete
c64c440fc927: Pull complete
Digest: sha256:30676f09328e6ddca52365729caa7086324620685bbb9892d4b1fa3963096a97
Status: Downloaded newer image for ranjie/rmoments:v0.4.1_with_redis
docker.io/ranjie/rmoments:v0.4.1_with_redis

五、部署rmoments应用
5.1 创建部署目录
- 创建部署目录
 
mkdir -p /data/rmoments && cd /data/rmoments
5.2 docker-cli方式部署(可选)
可使用以下docker-cli方式,快速部署rmoments应用。
docker run -d \
   --restart always  \
   --name rmoments \
   -p 3500:3000 \
   -v $(pwd)/data:/app/data/ \
   ranjie/rmoments:v0.4.1_with_redis
5.3 编辑部署文件
本次实践使用docker compose方式部署,在部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。
vim docker-compose.yaml
version: '3.9'
services:
    rmoments:
        image:  ranjie/rmoments:v0.4.1_with_redis
        volumes:
            - '/data/rmoments/data:/app/data/'
        ports:
            - '2800:3000'
        container_name: rmoments
        restart: always
     
5.4 创建rmoments容器
执行以下命令,创建rmoments容器。
root@jeven01:/data/rmoments# docker compose up -d
[+] Running 2/2
 ✔ Network rmoments_default  Created                                                                                0.1s
 ✔ Container rmoments        Started                                                                                0.2s
5.5 查看rmoments容器状态
检查rmoments容器状态状态,确保rmoments容器正常启动。
root@jeven01:/data/rmoments#  docker compose ps
NAME                IMAGE                               COMMAND                  SERVICE             CREATEDSTATUS              PORTS
rmoments            ranjie/rmoments:v0.4.1_with_redis   "/bin/sh -c /app/sta…"   rmoments            28 seconds agoUp 27 seconds       0.0.0.0:2800->3000/tcp, :::2800->3000/tcp
5.6 检查rmoments容器日志
检查rmoments容器日志,确保rmoments服务正常运行。
root@jeven01:/data/rmoments# docker compose logs
rmoments  | OK
rmoments  | Listening on http://[::]:3000

六、访问rmoments服务
6.1 访问rmoments初始页
访问地址:http://192.168.3.88:2800,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。

6.2 登录rmoments
使用默认的账号密码admin/a123456,登录rmoments主页。

6.3 邮箱设置
系统设置——启用邮箱,如果不开启邮箱,账号注册会失败。

邮箱配置:
- 邮局服务器地址: smtp.126.com;
 - 邮局服务器端口:465,如果不启用安全连接,为 25;
 - 邮局安全连接:建议启用;
 - 邮局用户名:一般要填完整的邮件地址;
 - 邮局密码:一般填 <第三方邮件客户端密码>;
 - 邮局发件人:一般和邮局用户名一致;
 - 邮局发件人名:发件人的名字,自定义填写即可。
 

6.4 注册账号
在账号注册页面,填写账号信息,点击发送验证码,当正常收到注册邮箱注册码后填写即可。

使用新注册账号登录rmoments,可以看到成功登录。

6.5 发布内容
在输入框内,编辑帖子内容,编辑完毕后发布即可。


七、总结
rmoments 作为一个增强版的社交分享平台,通过引入多用户支持和一系列互动特性,极大地丰富了用户的交流体验。它不仅继承了原版moments的所有功能,还添加了多媒体集成、个性化设置以及云端存储等功能,为用户提供了更加灵活和便捷的内容管理方式。凭借其强大的功能集和用户体验优化,rmoments 成为了个人和团队分享生活与创意的理想选择。
- 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)