当前位置: 首页 > news >正文

centos通过DockerCompose搭建开源MediaCMS

MediaCMS

  • MediaCMS 是什么
  • 安装
    • 前置条件
    • Docker Compose升级(2.23以前版本)
    • 创建项目目录
    • 配置环境变量
    • 启动 MediaCMS
    • 初始化数据库(首次运行)
    • 访问 MediaCMS
    • 管理命令
  • 常见问题解决
    • 端口冲突:
    • 磁盘空间不足
    • 容器启动失败
    • 更新配置文件后:
  • 安全增强

MediaCMS 是什么

MediaCMS 是一种现代、功能齐全的开源视频和媒体 CMS。它的开发是为了满足现代网络平台查看和共享媒体的需求。它可用于在几分钟内构建中小型视频和媒体门户
官方文档:https://github.com/mediacms-io/mediacms
官方管理员文档:https://github.com/mediacms-io/mediacms/blob/main/docs/admins_docs.md#4-docker-deployment-options

安装

前置条件

安装 Docker 和 Docker Compose

# 安装 Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io# 启动并启用 Docker
sudo systemctl start docker
sudo systemctl enable docker# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Docker Compose升级(2.23以前版本)

升级后,您可以使用原始的 version: ‘3.8’ 配置而不会出现兼容性问题。

# 移除旧版本
sudo rm /usr/local/bin/docker-compose# 安装最新版本
DOCKER_COMPOSE_VERSION="v2.23.0"
wget -c "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose# 验证安装
docker-compose --version
# 应该显示 Docker Compose version v2.23.0

创建项目目录

mkdir mediacms-docker && cd mediacms-docker

创建 docker-compose.yml 文件:

cat <<EOF > docker-compose.yml
version: '3.8'services:postgres:image: postgres:13container_name: mediacms_dbenvironment:POSTGRES_DB: mediacmsPOSTGRES_USER: mediacmsPOSTGRES_PASSWORD: your_db_passwordvolumes:- postgres_data:/var/lib/postgresql/datanetworks:- mediacms_networkredis:image: redis:6container_name: mediacms_redisnetworks:- mediacms_networkbackend:image: mediacms/mediacms:latestcontainer_name: mediacms_backenddepends_on:- postgres- redisenvironment:DATABASE_URL: postgres://mediacms:your_db_password@postgres:5432/mediacmsREDIS_URL: redis://redis:6379/0ALLOWED_HOSTS: "*"SECRET_KEY: your_secret_key_hereADMIN_EMAIL: admin@example.comADMIN_PASSWORD: your_admin_passwordvolumes:- media:/mediacms/media- static:/mediacms/staticnetworks:- mediacms_networkfrontend:image: mediacms/fe:latestcontainer_name: mediacms_frontenddepends_on:- backendenvironment:BACKEND_HOST: http://backend:8000ports:- "80:80"networks:- mediacms_networknetworks:mediacms_network:driver: bridgevolumes:postgres_data:media:static:
EOF

配置环境变量

编辑 docker-compose.yml 文件,替换以下关键值:

your_db_password:强数据库密码(至少16字符)
your_secret_key_here:Django 密钥(使用 openssl rand -base64 32 生成)
your_admin_password:管理员密码
admin@example.com:管理员邮箱

启动 MediaCMS

# 启动服务
docker-compose up -d# 查看运行状态(等待所有容器状态变为 healthy)
docker-compose ps

初始化数据库(首次运行)

# 执行数据库迁移
docker-compose exec backend python manage.py migrate# 创建超级用户(如果通过环境变量设置了管理员,可跳过)
docker-compose exec backend python manage.py createsuperuser

访问 MediaCMS

打开浏览器访问:

http://your_server_ip

管理命令

# 停止服务
docker-compose down# 查看日志
docker-compose logs -f# 备份数据
docker-compose exec postgres pg_dump -U mediacms mediacms > mediacms_backup.sql# 更新到最新版本
docker-compose pull
docker-compose up -d

常见问题解决

端口冲突:

# 查看占用80端口的进程
sudo netstat -tulnp | grep ':80'
# 停止相关服务(如nginx/apache)
sudo systemctl stop nginx

磁盘空间不足

# 清理未使用的Docker资源
docker system prune -a

容器启动失败

# 查看具体错误
docker-compose logs backend
docker-compose logs frontend

更新配置文件后:

docker-compose down
docker-compose up -d --force-recreate

安全增强

  • 启用 HTTPS
    • 使用 Nginx 反向代理配置 SSL
    • 或在 frontend 服务中添加 Let’s Encrypt 容器
  • 限制访问
# 在防火墙中限制访问
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
http://www.lryc.cn/news/611020.html

相关文章:

  • Coze Studio开源,企业用户多了一种选择,也需多几分考量
  • MySQL 中 VARCHAR 和 TEXT 的区别
  • 区分邮科工业交换机与路由器
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘pytorch-lightning’问题
  • 【图像算法 - 09】基于深度学习的烟雾检测:从算法原理到工程实现,完整实战指南
  • Google AI 发布 MLE-STAR:一款能够自动执行各种 AI 任务的先进机器学习工程代理
  • 《算法导论》第 3 章 - 函数的增长
  • UE5.5使用ControlRig实现MetaHumanNPC看向玩家
  • oelove奥壹新版v11.7旗舰版婚恋系统微信原生小程序源码上架容易遇到的几个坑,避免遗漏参数白屏显示等问题
  • 【开源工具】基于Python的PDF清晰度增强工具全解析(附完整源码)
  • bluetooth matlab GFSK 调制解调,误码率统计
  • eclipse类IDE导入现有工程教程
  • 主数据变更流程
  • 文件夹的类型:文件夹 (.0)是什么意思?
  • 三极管三种基本放大电路:共射、共集、共基放大电路
  • 深入浅出 RabbitMQ-路由模式详解
  • SpringBoot中策略模式使用
  • 如何通过 5 种方式将照片从 iPad 传输到电脑
  • qt窗口--01
  • 【数据结构入门】数组和链表的OJ题(2)
  • LeetCood算法题~水果成篮
  • 美化一下达梦grant授权说明
  • 使用vscode编写markdown文档(使用Markdown Preview Enhanced和markdownlint两个插件)以及若干配置
  • vscode 关闭自动更新
  • 英语中日期与时间缩写
  • 计算机网络:目的网络在路由表项中的作用
  • RabbitMQ削峰填谷详解:让系统在流量洪峰中“稳如泰山”
  • Rust进阶-part4-智能指针2
  • linux查看kafka的消费组里是否有积压
  • 带 TrustZone 的按键点灯工程示例