前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Docker项目实战】使用Docker部署paopao-ce微社区

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

原创
作者头像
江湖有缘
发布2024-09-21 10:23:46
发布2024-09-21 10:23:46
1800
举报
文章被收录于专栏:Linux成长之路Linux成长之路

一、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正常运行。

代码语言:bash
复制
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。

代码语言:bash
复制
root@jeven01:/data/poapoa/paopao-ce# docker -v
Docker version 27.1.1, build 6312585

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

代码语言:bash
复制
root@jeven01:/data/poapoa/paopao-ce# docker compose version
Docker Compose version v2.19.1

四、下载项目源码

4.1 创建目录

创建安装部署/data/paopao/

代码语言:bash
复制
mkdir -p /data/paopao/  && cd  /data/paopao/

4.2 拉取项目

在github拉取Paopao-ce项目

代码语言:bash
复制
git clone https://github.com/rocboss/paopao-ce.git

4.3 查看项目内容

查看Paopao-ce

代码语言:bash
复制
root@jeven01:/data/paopao/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/paopao# cd paopao-ce/ root@jeven01:/data/paopao/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文件
代码语言: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。

代码语言:bash
复制
 vim config.yaml.sample
代码语言:yaml
复制
LocalOSS: # 本地文件OSS存储配置
  SavePath: custom/data/paopao-ce/oss
  Secure: False
  Bucket: paopao
  Domain: 192.168.3.88:8008

5.3 拉取相关镜像

执行以下命令,拉取Paopao-ce相关镜像。

代码语言:bash
复制
root@jeven01:/data/paopao/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个容器
代码语言:bash
复制
root@jeven01:/data/paopao/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容器正常启动。

代码语言:bash
复制
root@jeven01:/data/paopao/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容器,确保服务运行。

代码语言:bash
复制
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 是一个专为技术爱好者量身打造的优秀社区平台。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Paopao-ce介绍
    • 1.1 Paopao-ce简介
    • 1.2 Paopao-ce特点
    • 1.3 使用场景
  • 二、本地环境介绍
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 四、下载项目源码
    • 4.1 创建目录
    • 4.2 拉取项目
    • 4.3 查看项目内容
  • 五、部署Paopao-ce应用
    • 5.1 查看部署文件
    • 5.2 修改设置文件
    • 5.3 拉取相关镜像
    • 5.4 创建wikmd容器
    • 5.5 检查容器状态
    • 5.6 检查容器日志
  • 六、访问Paopao-ce微社区
    • 6.1 进入Paopao-ce初始页
    • 6.2 注册账号
    • 6.3 发布内容
  • 七、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档