castopod/docs/src/zh-Hans/getting-started/docker.md

6.3 KiB
Raw Blame History

title sidebarDepth
官方 Docker 镜像 3

官方 Docker 镜像

Castopod 在其自动构建期间会将 3 个 Docker 映像推送到 Docker Hub

此外Castopod 需要一个与 MySQL 兼容的数据库。 Redis 数据库 可以添加为缓存处理器 。

目前支持的标签

  • develop [unstable], 最新开发分支版本
  • beta [stable],最新的 beta 版本构建
  • 1.0.0-beta.x [stable],特定 beta 版本构建 (自 1.0.0-beta.22 起)
  • latest [stable],最新版本构建
  • 1.x.x [stable],特定版本构建(自 1.0.0 起)

用法示例:

  1. 安装 Dockerdocker-compose

  2. 创建 docker-compose.yml 文件,并添加以下内容:

    version: "3.7"
    
    services:
      app:
        image: castopod/app:latest
        container_name: "castopod-app"
        volumes:
          - castopod-media:/opt/castopod/public/media
        environment:
          MYSQL_DATABASE: castopod
          MYSQL_USER: castopod
          MYSQL_PASSWORD: changeme
          CP_BASEURL: "http://castopod.example.com"
          CP_ANALYTICS_SALT: changeme
          CP_CACHE_HANDLER: redis
          CP_REDIS_HOST: redis
        networks:
          - castopod-app
          - castopod-db
        restart: unless-stopped
    
      web-server:
        image: castopod/web-server:latest
        container_name: "castopod-web-server"
        volumes:
          - castopod-media:/var/www/html/media
        networks:
          - castopod-app
        ports:
          - 8080:80
        restart: unless-stopped
    
      mariadb:
        image: mariadb:10.5
        container_name: "castopod-mariadb"
        networks:
          - castopod-db
        volumes:
          - castopod-db:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: changeme
          MYSQL_DATABASE: castopod
          MYSQL_USER: castopod
          MYSQL_PASSWORD: changeme
        restart: unless-stopped
    
      redis:
        image: redis:7.0-alpine
        container_name: "castopod-redis"
        volumes:
          - castopod-cache:/data
        networks:
          - castopod-app
    
      # this container is optional
      # add this if you want to use the videoclips feature
      video-clipper:
        image: castopod/video-clipper:latest
        container_name: "castopod-video-clipper"
        volumes:
          - castopod-media:/opt/castopod/public/media
        environment:
          MYSQL_DATABASE: castopod
          MYSQL_USER: castopod
          MYSQL_PASSWORD: changeme
        networks:
          - castopod-db
        restart: unless-stopped
    
    volumes:
      castopod-media:
      castopod-db:
      castopod-cache:
    
    networks:
      castopod-app:
      castopod-db:
    

    你还需要调整一些变量。 (例如:CP_BASEURL MYSQL_ROOT_PASSWORD MYSQL_PASSSWORDCP_ANALYTICS_SALT

  3. 设置 TLS 反向代理 (SSL/HTTPS)

    TLS 是 ActivePub 工作的强制性要求。 此操作可用通过反向代理轻松解决,例如使用 Caddy 处理:

    #castopod
    castopod.example.com {
        reverse_proxy localhost:8080
    }
    
  4. 运行命令 docker-compose up -d 等待初始化后跳转到 https://castopod.example.com/cp-install 来完成 Castopod 的设置!

  5. 一切准备就绪,开始博客吧! 🎙️🚀

环境变量

  • castopod/video-clipper

    变量名称 类型 (默认值) Default
    CP_DATABASE_HOSTNAME ?string "mariadb"
    CP_DATABASE_NAME ?string MYSQL_DATABASE
    CP_DATABASE_USERNAME ?string MYSQL_USER
    CP_DATABASE_PASSWORD ?string MYSQL_PASSWORD
    CP_DATABASE_PREFIX ?string "cp_"
  • castopod/app

    变量名称 类型 (default) Default
    CP_BASEURL string undefined
    CP_MEDIA_BASEURL ?string CP_BASEURL
    CP_ADMIN_GATEWAY ?string "cp-admin"
    CP_AUTH_GATEWAY ?string "cp-auth"
    CP_ANALYTICS_SALT string undefined
    CP_DATABASE_HOSTNAME ?string "mariadb"
    CP_DATABASE_NAME ?string MYSQL_DATABASE
    CP_DATABASE_USERNAME ?string MYSQL_USER
    CP_DATABASE_PASSWORD ?string MYSQL_PASSWORD
    CP_DATABASE_PREFIX ?string "cp_"
    CP_CACHE_HANDLER ["file""redis"] "file"
    CP_REDIS_HOST ?string "localhost"
    CP_REDIS_PASSWORD ?string null
    CP_REDIS_PORT ?number 6379
    CP_REDIS_DATABASE ?number 0
    CP_EMAIL_SMTP_HOST ?string undefined
    CP_EMAIL_FROM ?string undefined
    CP_EMAIL_SMTP_USERNAME ?string "localhost"
    CP_EMAIL_SMTP_PASSWORD ?string null
    CP_EMAIL_SMTP_PORT ?number 25
    CP_EMAIL_SMTP_CRYPTO ["tls""ssl"] "tls"
  • castopod/web-server

    变量名称 Type 默认
    CP_APP_HOSTNAME ?string "app"