【07】懒猫微服-打包mediacms应用
首先,先看下官方文档
然后,看下MediaCMS的Docker安装文档
MediaCMS
现代、功能齐全的开源视频和媒体内容管理系统
一个内容管理系统,专为满足现代网络平台查看和分享媒体的需求而开发
支持多种媒体类型:视频、音频、图片
多样的分类方式:分类、标签、自定义
灵活的分享选项:社交媒体分享、生成嵌入代码
强大的搜索功能:实时搜索支持
数据完全自控:支持自托管
多种发布模式:公开、私密、未列出、自定义
用户管理灵活:开放注册、邀请制、关闭注册等
配置高度可定制:可更换 logo、字体、样式,添加页面
响应式设计,适配各类设备
支持明暗主题切换
A demo is available at https://demo.mediacms.io
默认用户名和密码在下发配置文件中的ADMIN_USER/ADMIN_PASSWORD。
MediaCMS只能通过上传视频添加媒体。
MediaCMS在上传完成视频后,需要一段时间占用CPU转码,文件越大,转码时间越长。
lzc-build.yml
然后编写下lzc-build.yml文件
# lzc-build.yml
# 指定 lpk 包的输出位置
pkgout: ./
# 指定应用的图标文件路径
icon: ./icon.png
# 指定应用的 manifest 文件路径
manifest: ./lzc-manifest.yml
lzc-manifest.yml
再编写下lzc-manifest.yml文件:
lzc-sdk-version: '0.1'
# 应用的基本信息
name: MediaCMS
package: cloud.lazycat.app.mediacms
version: '3.0.1'
description: A content management system developed to meet the needs of modern web platforms for viewing and sharing media.
# application 作为一个特殊的容器运行
application:
# 配置应用的子域名,最终访问地址将是 http://mediacms.${LAZYCAT_BOX_DOMAIN}
subdomain: mediacms
# 配置路由规则,将根路径的HTTP请求转发到 mediacms 服务的80端口
background_task: true
multi_instance: false
oidc_redirect_path: /auth/oidc.callback
gpu_accel: false
kvm_accel: false
usb_accel: false
routes:
- /=http://mediacms.cloud.lazycat.app.mediacms.lzcapp:80
# 定义应用所需的服务
services:
# 主应用服务
mediacms:
image: registry.lazycat.cloud/xxx/mediacms/mediacms:dbaae10c4c7dd8e9
# 新增:添加重启策略。如果应用启动失败,则自动重启。
# 防止数据库完全就绪前尝试连接而导致的启动失败
restart: on-failure
# 依赖于 db 和 redis 服务,确保它们先启动
depends_on:
- db
- redis
# 挂载持久化目录,用于存放上传的媒体文件
binds:
- /lzcapp/run/mnt/home/${LAZYCAT_BOX_NAME}/mediacms/mediacms-data:/home/mediacms.io/mediacms/media_files
# 配置环境变量
environment:
- POSTGRES_DB=mediacms
- POSTGRES_USER=mediacms
- POSTGRES_PASSWORD=strongpwd
- POSTGRES_HOST=db
- REDIS_HOST=redis
- ADMIN_USER=admin
- [email protected] # 邮箱地址
- ADMIN_PASSWORD=tkQuHfBsnZK44ZoFCTZ
- FRONTEND_HOST=http://mediacms.${LAZYCAT_BOX_DOMAIN}
# 数据库服务
db:
image: registry.lazycat.cloud/xxx/library/postgres:6c5ce5405e537c88
# 为数据库服务也添加重启策略,增加系统健壮性
restart: on-failure
environment:
- POSTGRES_DB=mediacms
- POSTGRES_USER=mediacms
- POSTGRES_PASSWORD=strongpwd # !!重要!! 请确保与上面 mediacms 服务中的密码一致
# 挂载持久化目录,用于存放数据库文件
binds:
- /lzcapp/run/mnt/home/${LAZYCAT_BOX_NAME}/mediacms/mediacms-pg:/var/lib/postgresql/data
# 新增:健康检查配置
health_check:
test:
- CMD-SHELL
# 使用 pg_isready 检查 mediacms 数据库和用户是否就绪
- pg_isready -d mediacms -U mediacms
# 给予数据库最长 360 秒的启动准备时间
start_period: 360s
# Redis 服务
redis:
image: registry.lazycat.cloud/xxx/library/redis:7a33c3761b4ee2ac
# 为 Redis 服务也添加重启策略
restart: on-failure
# 新增:健康检查配置
health_check:
test:
- CMD-SHELL
# 使用 redis-cli ping 命令检查 Redis 服务是否就绪
- redis-cli ping
# 给予 Redis 最长 180 秒的启动准备时间
start_period: 180s
获取下mediacsm的logo,可以通过这个插件获取:
如果是自己用,直接拉公网镜像也可以,如果要上传应用商店
需要将镜像推送至官方仓库,然后替换镜像ID。
lzc-cli appstore copy-image mediacms/mediacms:latest
lzc-cli appstore copy-image postgres:15-alpine
lzc-cli appstore copy-image redis:7-alpine
打包
进入mediacms目录,执行
lzc-cli project build
会在当前目录生成cloud.lazycat.app.mediacms-v3.0.1.lpk文件,双击安装即可。
需要查看容器日志的话:
cd /data/app/
lzc-docker ps -a | grep out
发布命令
lzc-cli appstore publish ./your-app.lpk