docker compose 部署迁移 Chevereto 图床程序教程

前言

Chevereto

是目前最流行的图床之一.其颜值高,功能多,扩展性强,安装方便并提供了免费和付费版本满足了各种需求.由于近期沉迷于 docker 环境,于是决定尝试使用 docker compose 安装部署,并迁移现有的图片和数据库.

本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.

镜像

官方镜像支持

docker

docker compose

两种部署方法,博主推荐使用

docker compose

的方案,通过挂载图片及数据库目录,可以实现非常快速的备份和迁移.

docker-compose.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:

配置

创建 chevereto 文件夹

为图床程序创建一个文件夹以存放

配置文件

,

图片文件夹

,

数据库文件夹

.以便方便备份和迁移.博主推荐直接在

root

目录下创建

chevereto

文件夹.同时在

chevereto

文件夹内创建

docker-compose.yml

文件和

php.ini

文件.
docker compose 部署迁移 Chevereto 图床程序教程

配置 php.ini 文件

配置 docker 服务可支持的最大上传限制.以下默认配置为

100M

上传限制,请自行配置.

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

配置 docker-compose.yml 文件

配置数据库

依照上文

docker-compose.yml

参考,修改对应的数据库信息.

MYSQL_ROOT_PASSWORD: xxxxx
# 自行创建数据库root密码
MYSQL_DATABASE: xxxxx
# 创建图床数据库名
MYSQL_USER: xxxxx
# 创建数据库用户名
MYSQL_PASSWORD: xxxxx
# 创建数据库用户密码

CHEVERETO_DB_USERNAME: xxxxxx
# 与MYSQL的数据库用户名保持一致
CHEVERETO_DB_PASSWORD: xxxxx
# 与MYSQL的数据库用户密码保持一致
CHEVERETO_DB_NAME: xxxxx
# 与MYSQL的数据库名保持一致

配置挂载路径

上文

docker-compose.yml

样本参考中,博主已经配置好

数据库文件夹database

图片文件夹images

的路径为

./当前目录

,即所有的配置和数据文件都存放在

chevereto

目录中.以下为配置解说:

- ./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

完成以上

docker-compose.yml

php.ini

文件的配置,运行以下命令即可启动服务.

# 启动命令
docker-compose up -d
# 容器正常运行中如需修改配置docker-compose.yml,执行以下停止命令,修改完毕后再次执行以上启动命令.
docker-compose down

docker容器启动后,

chevereto

文件夹内会自动生成挂载的两个目录.分别为数据库的

database

和图片文件夹

images

.为使图床程序能够正常上传和删除图片,还需要配置

images

文件夹权限.

chmod -R 777 images

1183158036

配置域名及反向代理

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

nginx示例

upstream dockername { 
    server 127.0.0.1:8080; # 端口改为docker容器提供的端口
}

server {
    listen 80;
    server_name  www.yourdomain.com;
    return 301 https://www.yourdomain.com$request_uri;
}

server {
    listen 443 ssl;
    server_name  www.yourdomain.com;
    gzip on;    

    ssl_certificate /usr/local/nginx/conf/ssl/www.yourdomain.com.crt;
    ssl_certificate_key /usr/local/nginx/conf/ssl/www.yourdomain.com.key;

    # access_log /var/log/nginx/dockername_access.log combined;
    # error_log  /var/log/nginx/dockername_error.log;

    location / {
        proxy_redirect off;
        proxy_pass http://dockername;

        proxy_set_header  Host                $http_host;
        proxy_set_header  X-Real-IP           $remote_addr;
        proxy_set_header  X-Forwarded-Ssl     on;
        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto   $scheme;
        proxy_set_header  X-Frame-Options     SAMEORIGIN;

        client_max_body_size        100m;
        client_body_buffer_size     128k;

        proxy_buffer_size           4k;
        proxy_buffers               4 32k;
        proxy_busy_buffers_size     64k;
        proxy_temp_file_write_size  64k;
    }
}

迁移

场景一 : docker 环境之间迁移

首次部署是按照上文流程全新安装,后期如需迁移服务器,只需备份

root

内的

chevereto

文件夹至新服务器,运行

docker-compose up -d

,并配置域名及反向代理即可完成迁移.方便快捷,这也是博主推荐和分享本文的初衷.

场景二 : 常规LNMP部署迁移至 docker compose 部署

由于博主首次安装 chevereto 是常规 LNMP 环境安装,需备份数据库和图片文件,并迁移至 docker 部署环境,详细流程请参阅下文:

备份数据库

登陆原服务器使用

mysqldump

命令备份数据库.请确保你知道当初安装图床时所配置的

数据库名

,

数据库用户名

,

数据库用户密码

.导出为

database.sql

后拷贝至新服务器.

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

配置 docker-compose.yml 并运行

首先按照

上文全新安装的流程

配置完毕,其中

docker-compose.yml

文件内的

数据库名

,

数据库用户名

,

数据库用户密码

与原有图床程序安装时的数据库信息一致.然后运行 docker-compose.

docker-compose up -d

拷贝数据库文件至容器内

将备份出来的数据库文件

database.sql

并拷贝至

mariadb

容器内

根目录

.

docker cp database.sql mariadb:/

进入容器恢复数据库

执行命令进入

mariadb

容器的

根目录

docker exec -it mariadb /bin/bash

使用

mysqldump

命令恢复数据库,其中

user

为你的数据库用户名,

database

为你的数据库名,执行后会提示输入

数据库用户密码

.

mysqldump -u user -p database > database.sql

迁移原图床图片

迁移原图床程序的

images

文件夹内所有文件夹及文件至

docker-compose.yml所在目录

images

文件夹内.迁移完成后执行以下命令配置权限.

chmod -R 777 images

配置域名及反向代理

依照上文教程为新服务器配置域名,证书,301跳转HTTPS及反向代理至8080端口即可完成迁移部署.


结语

本站还介绍过其他图床的安装教程,详情请参考以下链接:


本站提供免费和付费的技术支持.你可以通过留言,邮件,TG群的方式来技术交流和免费咨询.同时也可以付费支持的方式获得相关的技术支持,项目部署配置等服务.具体相关详情请点击查看 技术支持页面

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享