【Docker项目实战】使用Docker部署paopao-ce微社区

举报
江湖有缘 发表于 2024/08/22 13:23:10 2024/08/22
【摘要】 【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 是一个专为技术爱好者量身打造的优秀社区平台。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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