admin管理员组文章数量:1027963
【Docker项目实战】使用Docker部署moments极简朋友圈
一、moments介绍
1.1 moments 平台简介
moments 是一个极简设计的朋友圈社交平台,旨在为用户提供一个简洁而高效的分享空间。它允许用户轻松记录和分享生活中的点滴时刻、创意作品以及其他任何想要记录的内容。通过其直观的界面和一系列实用功能,moments 促进了用户之间的交流与互动。
1.2 主要特点
- 多用户模式:支持多个独立账户注册登录,管理员可在后台灵活控制用户注册选项,以满足不同场景下的需求。
- Memo 功能:用户可以创建备忘录或笔记,并利用标签进行分类管理,方便快速查找和组织信息。
- 多媒体支持:提供图片上传功能,既可以直接上传至服务器,也可以配置后台设置启用S3云存储服务;目前仅在直接上传时支持生成缩略图,未来版本将扩展此功能到S3上传。
- Markdown 语法支持:初步适配了部分常用的 Markdown 标签,简化了文本格式化的过程,计划在未来更新中增加对更多标签的支持。
- 社交互动:内置点赞和评论系统,增强用户间的交流互动;管理员还可以在后台选择性地开启或关闭评论功能,确保社区环境的和谐。
- 个性化体验:支持自定义个人资料、头像及背景图等元素,帮助用户打造独一无二的个人页面。
- 内容可见性设置:提供了查看权限的功能,如私密或指定用户可见,保障用户的隐私和内容安全。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 项目名称 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 | LTS 24.0.7 | moments社交平台 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署moments极简朋友圈
三、本地环境检查
3.1 检查Docker服务状态
代码语言:bash复制检查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:
Main PID: 918 (dockerd)
Tasks: 16
Memory: 106.8M
CPU: 3.741s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
代码语言:bash复制检查Docker版本
root@jeven01:~# docker -v
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1
3.3 检查docker compose 版本
代码语言:bash复制检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载moments镜像
代码语言:bash复制执行以下命令,拉取以下moments镜像。当前镜像版本为0.2.8,使用 kingwrcy/moments:0.2.8镜像。
root@jeven01:~# docker pull kingwrcy/moments:0.2.8
0.2.8: Pulling from kingwrcy/moments
Digest: sha256:522be9f6db38e63aaa728dd99eb693b3bcc720459433c21f1424516f7fce7b56
Status: Downloaded newer image for kingwrcy/moments:0.2.8
docker.io/kingwrcy/moments:0.2.8
五、部署moments应用
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/moments && cd /data/moments
5.2 docker-cli方式部署(可选)
代码语言:bash复制可使用以下docker-cli方式,快速部署rmoments应用。
docker run -d \
-e PORT=3000 \
-e JWT_KEY=$JWT_KEY \
-p 3000:3000 \
-v /var/moments:/app/data \
--name moments \
kingwrcy/moments:latest
5.3 编辑部署文件
代码语言:bash复制本次实践使用docker compose方式部署,在部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。
vim docker-compose.yaml
代码语言:yaml复制version: '3.9'
services:
moments:
image: kingwrcy/moments:latest
container_name: moments
restart: always
environment:
PORT: 3000
JWT_KEY: 640b17a60208afa5bb311d49ead11bd7862d28e157431d3b92f33d1c3bab239c
ports:
- 3000:3000
volumes:
- /data/moments/data:/app/data # 持久化数据到主机的 /var/moments 目录,可以按需修改
5.4 创建moments容器
代码语言:bash复制执行以下命令,创建moments容器。
root@jeven01:/data/moments# docker compose up -d
[+] Running 6/6
✔ moments 5 layers [⣿⣿⣿⣿⣿] 0B/0B Pulled 16.6s
✔ 38a8310d387e Already exists 0.0s
✔ 8a5b75aba17d Pull complete 0.7s
✔ b7f69174cb58 Pull complete 3.1s
✔ e19dc3657316 Pull complete 9.5s
✔ 4f4fb700ef54 Pull complete 9.6s
[+] Running 2/2
✔ Network moments_default Created 0.1s
✔ Container moments Started 0.3s
5.5 查看moments容器状态
代码语言:bash复制检查moments容器状态状态,确保moments容器正常启动。
root@jeven01:/data/moments# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
moments kingwrcy/moments:latest "/app/moments" moments 25 minutes ago Up 25 minutes 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp
5.6 检查moments容器日志
代码语言:bash复制检查moments容器日志,确保moments服务正常运行。
root@jeven01:/data/moments# docker compose logs
moments | 2025-01-09 00:31:55 INF version = 0.2.8
moments | 2025-01-09 00:31:55 INF commitId = 0f0b2f8
moments | 2025-01-09 00:31:56 INF 初始化默认配置...
moments | 2025-01-09 00:31:56 INF 用户不存在,初始化[admin/a123456]用户... 成功!
moments | 2025-01-09 00:31:56 INF 初始化默认配置执行成功
moments | ⇨ http server started on [::]:3000
moments | 2025-01-09 00:34:48 INF memo is {Id:0 Content:aa1a1a1 Imgs:/upload/9a053a2ad16b465f9d36601cf7b0f48e FavCount:0 CommentCount:0 UserId:1 CreatedAt:2025-01-09 00:34:48.429327595 +0800 CST m=+172.449048114 UpdatedAt:<nil> Music163Url:BilibiliUrl: Location: ExternalUrl: ExternalTitle: ExternalFavicon: Pinned:0xc0000b96d7 Ext:{"music":{},"doubanBook":{},"doubanMovie":{},"video":{}} ShowType:0xc0000b96d8 User:<nil> Comments:[] Tags:<nil>}
六、访问moments服务
6.1 访问moments初始页
访问地址:http://192.168.3.88:3000,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。
6.2 登录moments
默认用户名和密码是 admin/a123456,登录后可以在后台修改。
七、moments基本使用
7.1 开放注册
点击系统设置选项,开启注册用户选项,保存配置即可。
7.2 注册用户
在注册用户选项,自定义填写用户信息,确认即可。
使用新注册的用户登录moments,如下所示:
7.3 发布信息
在编辑框内,编辑内容,发布即可。
八、总结
moments 是一个设计简洁的朋友圈社交平台,它提供了一个直观的界面和多种实用功能,让用户能够轻松地记录和分享生活中的各种时刻。平台支持多媒体上传、Markdown 语法、点赞评论等互动特性,并允许管理员灵活管理用户注册和评论功能,确保了社区的活跃与和谐。通过其个性化的设置选项和内容可见性控制,moments 为用户打造了一个既安全又充满交流乐趣的在线空间。
【Docker项目实战】使用Docker部署moments极简朋友圈
一、moments介绍
1.1 moments 平台简介
moments 是一个极简设计的朋友圈社交平台,旨在为用户提供一个简洁而高效的分享空间。它允许用户轻松记录和分享生活中的点滴时刻、创意作品以及其他任何想要记录的内容。通过其直观的界面和一系列实用功能,moments 促进了用户之间的交流与互动。
1.2 主要特点
- 多用户模式:支持多个独立账户注册登录,管理员可在后台灵活控制用户注册选项,以满足不同场景下的需求。
- Memo 功能:用户可以创建备忘录或笔记,并利用标签进行分类管理,方便快速查找和组织信息。
- 多媒体支持:提供图片上传功能,既可以直接上传至服务器,也可以配置后台设置启用S3云存储服务;目前仅在直接上传时支持生成缩略图,未来版本将扩展此功能到S3上传。
- Markdown 语法支持:初步适配了部分常用的 Markdown 标签,简化了文本格式化的过程,计划在未来更新中增加对更多标签的支持。
- 社交互动:内置点赞和评论系统,增强用户间的交流互动;管理员还可以在后台选择性地开启或关闭评论功能,确保社区环境的和谐。
- 个性化体验:支持自定义个人资料、头像及背景图等元素,帮助用户打造独一无二的个人页面。
- 内容可见性设置:提供了查看权限的功能,如私密或指定用户可见,保障用户的隐私和内容安全。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为|Ubuntu 22.04.1。
hostname | IP地址 | 操作系统版本 | Docker版本 | 项目名称 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 | LTS 24.0.7 | moments社交平台 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署moments极简朋友圈
三、本地环境检查
3.1 检查Docker服务状态
代码语言:bash复制检查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:
Main PID: 918 (dockerd)
Tasks: 16
Memory: 106.8M
CPU: 3.741s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
代码语言:bash复制检查Docker版本
root@jeven01:~# docker -v
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1
3.3 检查docker compose 版本
代码语言:bash复制检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、下载moments镜像
代码语言:bash复制执行以下命令,拉取以下moments镜像。当前镜像版本为0.2.8,使用 kingwrcy/moments:0.2.8镜像。
root@jeven01:~# docker pull kingwrcy/moments:0.2.8
0.2.8: Pulling from kingwrcy/moments
Digest: sha256:522be9f6db38e63aaa728dd99eb693b3bcc720459433c21f1424516f7fce7b56
Status: Downloaded newer image for kingwrcy/moments:0.2.8
docker.io/kingwrcy/moments:0.2.8
五、部署moments应用
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/moments && cd /data/moments
5.2 docker-cli方式部署(可选)
代码语言:bash复制可使用以下docker-cli方式,快速部署rmoments应用。
docker run -d \
-e PORT=3000 \
-e JWT_KEY=$JWT_KEY \
-p 3000:3000 \
-v /var/moments:/app/data \
--name moments \
kingwrcy/moments:latest
5.3 编辑部署文件
代码语言:bash复制本次实践使用docker compose方式部署,在部署目录下,创建docker-compose.yaml文件,其中宿主机映射端口等可以自定义配置。
vim docker-compose.yaml
代码语言:yaml复制version: '3.9'
services:
moments:
image: kingwrcy/moments:latest
container_name: moments
restart: always
environment:
PORT: 3000
JWT_KEY: 640b17a60208afa5bb311d49ead11bd7862d28e157431d3b92f33d1c3bab239c
ports:
- 3000:3000
volumes:
- /data/moments/data:/app/data # 持久化数据到主机的 /var/moments 目录,可以按需修改
5.4 创建moments容器
代码语言:bash复制执行以下命令,创建moments容器。
root@jeven01:/data/moments# docker compose up -d
[+] Running 6/6
✔ moments 5 layers [⣿⣿⣿⣿⣿] 0B/0B Pulled 16.6s
✔ 38a8310d387e Already exists 0.0s
✔ 8a5b75aba17d Pull complete 0.7s
✔ b7f69174cb58 Pull complete 3.1s
✔ e19dc3657316 Pull complete 9.5s
✔ 4f4fb700ef54 Pull complete 9.6s
[+] Running 2/2
✔ Network moments_default Created 0.1s
✔ Container moments Started 0.3s
5.5 查看moments容器状态
代码语言:bash复制检查moments容器状态状态,确保moments容器正常启动。
root@jeven01:/data/moments# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
moments kingwrcy/moments:latest "/app/moments" moments 25 minutes ago Up 25 minutes 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp
5.6 检查moments容器日志
代码语言:bash复制检查moments容器日志,确保moments服务正常运行。
root@jeven01:/data/moments# docker compose logs
moments | 2025-01-09 00:31:55 INF version = 0.2.8
moments | 2025-01-09 00:31:55 INF commitId = 0f0b2f8
moments | 2025-01-09 00:31:56 INF 初始化默认配置...
moments | 2025-01-09 00:31:56 INF 用户不存在,初始化[admin/a123456]用户... 成功!
moments | 2025-01-09 00:31:56 INF 初始化默认配置执行成功
moments | ⇨ http server started on [::]:3000
moments | 2025-01-09 00:34:48 INF memo is {Id:0 Content:aa1a1a1 Imgs:/upload/9a053a2ad16b465f9d36601cf7b0f48e FavCount:0 CommentCount:0 UserId:1 CreatedAt:2025-01-09 00:34:48.429327595 +0800 CST m=+172.449048114 UpdatedAt:<nil> Music163Url:BilibiliUrl: Location: ExternalUrl: ExternalTitle: ExternalFavicon: Pinned:0xc0000b96d7 Ext:{"music":{},"doubanBook":{},"doubanMovie":{},"video":{}} ShowType:0xc0000b96d8 User:<nil> Comments:[] Tags:<nil>}
六、访问moments服务
6.1 访问moments初始页
访问地址:http://192.168.3.88:3000,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。
6.2 登录moments
默认用户名和密码是 admin/a123456,登录后可以在后台修改。
七、moments基本使用
7.1 开放注册
点击系统设置选项,开启注册用户选项,保存配置即可。
7.2 注册用户
在注册用户选项,自定义填写用户信息,确认即可。
使用新注册的用户登录moments,如下所示:
7.3 发布信息
在编辑框内,编辑内容,发布即可。
八、总结
moments 是一个设计简洁的朋友圈社交平台,它提供了一个直观的界面和多种实用功能,让用户能够轻松地记录和分享生活中的各种时刻。平台支持多媒体上传、Markdown 语法、点赞评论等互动特性,并允许管理员灵活管理用户注册和评论功能,确保了社区的活跃与和谐。通过其个性化的设置选项和内容可见性控制,moments 为用户打造了一个既安全又充满交流乐趣的在线空间。
本文标签: Docker项目实战使用Docker部署moments极简朋友圈
版权声明:本文标题:【Docker项目实战】使用Docker部署moments极简朋友圈 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747467296a2167654.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论