【Docker项目实战】使用Docker部署rmoments简单朋友圈应用

举报
江湖有缘 发表于 2025/02/27 00:04:16 2025/02/27
54 0 0
【摘要】 【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 成为了个人和团队分享生活与创意的理想选择。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。