Skip to content

Docker compose 部署迁移 chevereto

镜像

nmtan/chevereto

配置

docker-compose.yml 参考

yml
version: '3'

services:
  db:
    image: mariadb
    volumes:
      - ./database:/var/lib/mysql:rw
    restart: always
    networks:
      - private
    environment:
      MYSQL_ROOT_PASSWORD: xxxxx
      MYSQL_DATABASE: xxxxx
      MYSQL_USER: xxxxx
      MYSQL_PASSWORD: xxxxx

  chevereto:
    depends_on:
      - db
    image: nmtan/chevereto
    restart: always
    networks:
      - private
    environment:
      CHEVERETO_DB_HOST: db
      CHEVERETO_DB_USERNAME: xxxxxx
      CHEVERETO_DB_PASSWORD: xxxxx
      CHEVERETO_DB_NAME: xxxxx
      CHEVERETO_DB_PREFIX: chv_
    volumes:
      - ./images:/var/www/html/images:rw
      - ./php.ini:/usr/local/etc/php/php.ini:ro
    ports:
      - 8080:80

networks:
  private:

环境配置

  • root目录创建chevereto文件夹
  • chevereto文件夹内创建docker-compose.yml
  • chevereto文件夹内创建php.ini

修改 php.ini 配置图片上传大小

ini
memory_limit = 256M;
upload_max_filesize = 100M;
post_max_size = 100M;

修改 docker-compose.yml 相关配置

yml
- ./database:/var/lib/mysql:rw
# 挂载数据库到当前目录下的database
- ./images:/var/www/html/images:rw
# 挂载图片文件夹到当前目录下的images
- ./php.ini:/usr/local/etc/php/php.ini:ro
# 挂载php.ini到容器内以配置上传文件大小限制

部署

运行docker-compose

shell
docker-compose up -d

配置images文件夹权限

shell
chmod -R 777 images

停止docker-compose

shell
docker-compose down

配置域名及反向代理

配置域名,证书,301跳转HTTPS及反向代理至8080端口即可完成部署.

迁移

docker环境之间迁移

?> 按照上文流程全新安装,后期如需迁移服务器,只需备份root内的chevereto文件夹至新服务器,运行docker-compose up -d,并配置域名及反向代理即可完成迁移.

常规部署迁移至 docker compose 部署

?> 如需将由常规部署的 chevereto 迁移至 docker compose 部署的环境,请参阅下文:

!> 配置docker-compose.yml文件内的数据库名,用户名,密码与现有数据库一致.

备份数据库

原始环境使用mysqldump备份数据库

shell
mysqldump -u user -p database > database.sql
# mysqldump -u 数据库用户名 -p 数据库名 > xxxx.sql

拷贝数据库文件至容器内

shell
docker cp database.sql mariadb:/

进入容器

shell
docker exec -it mariadb /bin/bash

恢复数据库

shell
mysqldump -u user -p database > database.sql

迁移images文件夹

迁移原始images文件夹内所有文件至docker-compose.yml所在目录的images文件夹内.