【Docker项目实战】使用Docker部署paopao-ce微社区
@TOC
一、Paopao-ce介绍
1.1 Paopao-ce简介
Paopao-ce
是一个基于 Gin (Go web框架)、Zinc (Go的NoSQL数据库)、Vue.js (前端框架) 和 TypeScript (JavaScript的超集) 打造的艺术“Twitter-like”社区。它旨在提供一个清新文艺的微型社区环境,让用户能够分享艺术相关的短消息、图片和其他创意内容。
1.2 Paopao-ce特点
简洁优雅的用户界面
::清新的设计风格为用户提供愉悦的视觉体验。强大的多媒体支持
::用户可以轻松分享图片、图文、视频等多种形式的艺术作品。高效的实时交互
:实时更新的内容流确保用户第一时间获取到最新动态。丰富的社交功能
::通过点赞、评论和转发等功能促进社区内的互动与交流。定制化的推荐算法
::智能推荐系统帮助用户发现更多感兴趣的艺术内容。全面的隐私控制
::用户可以根据需要调整个人资料和帖子的可见性。高效的搜索功能
::强大的搜索能力帮助用户快速找到相关内容。开源项目特点
::开放源代码,鼓励社区贡献和改进,形成一个持续发展的项目生态。
1.3 使用场景
-
艺术家分享作品:艺术家上传最新的画作,并附上创作灵感和过程。
-
设计师交流心得:设计师分享设计理念,与其他同行交流心得。
-
摄影爱好者晒照片: 摄影爱好者上传旅行中的美景照片,并讲述背后的故事。
-
音乐人发布新歌预告: 音乐人发布即将上线的新歌预告,吸引粉丝关注。
-
艺术展览信息分享:展览策展人发布即将到来的艺术展览详情,邀请大家参加。
-
艺术新闻速递:用户分享最新的艺术新闻,保持社区成员对艺术界的了解。
-
创意工作坊宣传:工作坊组织者发布创意课程信息,吸引更多参与者报名。
-
艺术挑战活动发起:社区管理员发起艺术挑战活动,鼓励用户参与并分享作品。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
hostname | IP地址 | 操作系统版本 | Docker版本 |
---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 22.04.1 LTS | 27.1.1 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.使用Docker部署Paopao-ce微社区。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@ubuntu-001:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2024-08-20 15:04:07 UTC; 4s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 21958 (dockerd)
Tasks: 10
Memory: 24.7M
CPU: 231ms
CGroup: /system.slice/docker.service
└─21958 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
3.2 检查Docker版本
检查Docker版本,Docker版本为27.1.1。
root@jeven01:/data/poapoa/paopao-ce# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:/data/poapoa/paopao-ce# docker compose version
Docker Compose version v2.19.1
四、下载项目源码
4.1 创建目录
创建安装部署
/data/poapoa/
mkdir -p /data/poapoa/ && cd /data/poapoa/
4.2 拉取项目
在github拉取Paopao-ce项目
git clone https://github.com/rocboss/paopao-ce.git
4.3 查看项目内容
查看Paopao-ce
root@jeven01:/data/poapoa/paopao-ce# tree -L 1 ./
./
├── auto
├── buf.gen.yaml
├── buf.work.yaml
├── build-image.sh
├── build-release.sh
├── CHANGELOG.md
├── cmd
├── config.yaml.sample
├── custom
├── default.pgo
├── deployed-sites.md
├── docker-compose.yaml
├── Dockerfile
├── docs
├── features-status.md
├── go.mod
├── go.sum
├── internal
├── LICENSE
├── main.go
├── Makefile
├── mirc
├── pkg
├── proto
├── README.md
├── ROADMAP.md
├── run.sh
├── scripts
└── web
10 directories, 19 files
五、部署Paopao-ce应用
5.1 查看部署文件
- 进入项目目录
root@jeven01:/data/poapoa# cd paopao-ce/
root@jeven01:/data/poapoa/paopao-ce# ls
auto build-image.sh cmd default.pgo Dockerfile go.mod LICENSE mirc README.md scripts
buf.gen.yaml build-release.sh config.yaml.sample deployed-sites.md docs go.sum main.go pkg ROADMAP.md web
buf.work.yaml CHANGELOG.md custom docker-compose.yaml features-status.md internal Makefile proto run.sh
- 查看docker-compose.yaml文件
version: '3.1'
services:
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: paopao
MYSQL_USER: paopao
MYSQL_PASSWORD: paopao
MYSQL_RANDOM_ROOT_PASSWORD: yes
volumes:
- ./scripts/paopao-mysql.sql:/docker-entrypoint-initdb.d/paopao.sql
- ./custom/data/mysql/data:/var/lib/mysql
ports:
- 3306:3306
networks:
- paopao-network
# minio:
# image: bitnami/minio:latest
# restart: always
# environment:
# MINIO_ROOT_USER: minio-root-user
# MINIO_ROOT_PASSWORD: minio-root-password
# MINIO_DEFAULT_BUCKETS: paopao:public
# ports:
# - 9000:9000
# - 9001:9001
# volumes:
# - ./custom/data/minio/data:/data
# networks:
# - paopao-network
# redis:
# image: redis:7.2.1-alpine
# restart: always
# ports:
# - 6379:6379
# networks:
# - paopao-network
redis:
image: redis/redis-stack:7.2.0-v2
restart: always
ports:
- 6379:6379
- 8001:8001
environment:
REDISEARCH_ARGS: "MAXSEARCHRESULTS 5"
networks:
- paopao-network
# zinc:
# image: bitbus/zincsearch:latest
# user: zincsearch
# restart: always
# ports:
# - 4080:4080
# volumes:
# - ./custom/data/zinc/data:/data
# environment:
# ZINC_FIRST_ADMIN_USER: admin
# ZINC_FIRST_ADMIN_PASSWORD: admin
# DATA_PATH: /data
# networks:
# - paopao-network
meili:
image: getmeili/meilisearch:v1.4
restart: always
ports:
- 7700:7700
volumes:
- ./custom/data/meili/data:/meili_data
environment:
- MEILI_MASTER_KEY=paopao-meilisearch
networks:
- paopao-network
# meilisearch-ui:
# image: riccoxie/meilisearch-ui:latest
# restart: always
# ports:
# - 24900:24900
# networks:
# - paopao-network
# openobserve:
# image: public.ecr.aws/zinclabs/openobserve:latest
# restart: always
# ports:
# - 5080:5080
# volumes:
# - ./custom/data/openobserve/data:/data
# environment:
# ZO_DATA_DIR: /data
# ZO_ROOT_USER_EMAIL: root@paopao.info
# ZO_ROOT_USER_PASSWORD: paopao-ce
# networks:
# - paopao-network
# pyroscope:
# image: pyroscope/pyroscope:latest
# restart: always
# ports:
# - 4040:4040
# command:
# - 'server'
# networks:
# - paopao-network
# phpmyadmin:
# image: phpmyadmin:5.2
# depends_on:
# - db
# ports:
# - 8080:80
# environment:
# - PMA_HOST=db
# - PMA_USER=paopao
# - PMA_PASSWORD=paopao
# networks:
# - paopao-network
backend:
image: bitbus/paopao-ce:0.5
restart: always
depends_on:
- db
- redis
- meili
# modify below to reflect your custom configure
volumes:
- ./config.yaml.sample:/app/paopao-ce/config.yaml
- ./custom:/app/paopao-ce/custom
ports:
- 8008:8008
networks:
- paopao-network
networks:
paopao-network:
driver: bridge
5.2 修改设置文件
在项目目录下,修改config.yaml.sample文件中,LocalOSS部分的 Domain值为自己服务器本地IP地址,端口为默认的8008。
vim config.yaml.sample
LocalOSS: # 本地文件OSS存储配置
SavePath: custom/data/paopao-ce/oss
Secure: False
Bucket: paopao
Domain: 192.168.3.88:8008
5.3 拉取相关镜像
执行以下命令,拉取Paopao-ce相关镜像。
root@jeven01:/data/poapoa/paopao-ce# docker compose pull
[+] Pulling 4/4
✔ backend Pulled 40.4s
✔ db Pulled 37.2s
✔ redis Pulled 36.8s
✔ meili Pulled 38.4s
5.4 创建wikmd容器
- 使用docker-compose.yaml文件创建Paopao-ce的4个容器
root@jeven01:/data/poapoa/paopao-ce# docker compose up -d
[+] Running 5/5
✔ Network paopao-ce_paopao-network Created 0.1s
✔ Container paopao-ce-meili-1 Started 1.3s
✔ Container paopao-ce-db-1 Started 1.2s
✔ Container paopao-ce-redis-1 Started 1.0s
✔ Container paopao-ce-backend-1 Started 1.8s
5.5 检查容器状态
检查Paopao-ce容器状态,确保Paopao-ce容器正常启动。
root@jeven01:/data/poapoa/paopao-ce# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
paopao-ce-backend-1 bitbus/paopao-ce:0.5 "/app/paopao-ce/paop…" backend 20 seconds ago Up 17 seconds (healthy) 0.0.0.0:8008->8008/tcp, :::8008->8008/tcp
paopao-ce-db-1 mysql:8.0 "docker-entrypoint.s…" db 20 seconds ago Up 19 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp
paopao-ce-meili-1 getmeili/meilisearch:v1.4 "tini -- /bin/sh -c …" meili 20 seconds ago Up 19 seconds 0.0.0.0:7700->7700/tcp, :::7700->7700/tcp
paopao-ce-redis-1 redis/redis-stack:7.2.0-v2 "/entrypoint.sh" redis 20 seconds ago Up 19 seconds 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp, 0.0.0.0:8001->8001/tcp, :::8001->8001/tcp
5.6 检查容器日志
检查Paopao-ce容器,确保服务运行。
docker compose logs
六、访问Paopao-ce微社区
6.1 进入Paopao-ce初始页
访问地址:http://192.168.3.88:8008,将IP替换为自己服务器IP地址,进入到Paopao-ce初始页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。
6.2 注册账号
- 点击注册账号
- 自定义填写账号密码,点击注册即可。
6.3 发布内容
测试发帖,图文、视频等,都可以正常发布。
七、总结
Paopao-ce
以其简洁高效的界面设计为用户打造了一个理想的创作与分享平台,无论是发布代码片段还是技术博客都变得简单快捷;不论是开源项目还是一闪而过的编程灵感,都能即时与社区内的技术同好们分享交流;实时更新的技术动态流确保了用户不会错过任何重要的技术进展,并能轻松参与到技术讨论中去,与开发者们建立联系;定制化的推荐算法让用户能够发现更多感兴趣的项目和技术文章,持续扩展技术视野;同时,强大的隐私设置功能让用户在分享个人项目的同时也能保持对个人信息的掌控,Paopao-ce
是一个专为技术爱好者量身打造的优秀社区平台。
- 点赞
- 收藏
- 关注作者
评论(0)