Chevereto

一、启动chevereto

下载docker-compose:

git clone https://github.com/docker/compose/releases/download/1.28.2/docker-compose-Linux-x86_64 -O /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

Chevereto世界知名的开源图床搭建教程(Docker视频教程)
配置参考如下:

version: '3'

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

  chevereto:
    depends_on:
      - db
    image: nmtan/chevereto
    restart: always
    networks:
      - private
    environment:
      CHEVERETO_DB_HOST: db
      CHEVERETO_DB_USERNAME: chevereto
      CHEVERETO_DB_PASSWORD: chevereto
      CHEVERETO_DB_NAME: chevereto
      CHEVERETO_DB_PREFIX: chv_
    volumes:
      - /mnt/hgfs/F:/F
      - /mnt/hgfs/G:/G
      - /mnt/hgfs/Server:/Server
      - /mnt/hgfs/F/chevereto:/var/www/html/images
      - /docker/chevereto/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    ports:
      - 9013:80

networks:
  private:
volumes:
  database:
  chevereto_images:

打开 ip:9013,即可访问图床页面:
img

二、修改文件大小&时间限制

默认最大文件上传仅有2M,故经常出现文件上传/导入不了的情况。故需要修改php.ini,docker镜像中没有vim,暴力安装vim会出现命令行换行故障,不推荐。不如在建立容器数据卷映射的时候就把对应的目录映射一下。或者通过docker cp /docker/chevereto/.htaccess chevereto_chevereto_1:/var/www/html复制进去,重启生效。
vi /var/www/html/.htaccess

img

php_value post_max_size 64M
php_value upload_max_filesize 64M
php_value max_execution_time 100000000
php_value memory_limit 2048M
php_value upload_threads 8

修改文件后,在 http://sunie.top:9013/dashboard/settings/image-upload 修改实际文件上传大小,也修改到64M。

后来发现在上传本地图片时,30s就停止了,大概只能上传0.5GB,修改max_execution_time memory_limit则基本上无限制上传。

三、Typora+PicGo Core+Chevereto图片自动上传个人服务器图床

参考Typora+PicGo Core+Chevereto实现笔记中的图片自动上传个人服务器图床

1.typora启用PicGo Core

img
添加C:\Users\Sunie\AppData\Roaming\Typora\picgo\win64到环境变量以便picgo.exe可以在命令行运行,启动cmd,输入picgo install web-uploader安装插件,此插件适用于私人服务器图床
img

2.获取API key

img

3.编辑配置文件config.json

{
  "picBed": {
    "current": "web-uploader",
    "web-uploader": {
      "customBody": "{\"key\":\"your key\"}",
      "customHeader": null,
      "jsonPath": "image.url",
      "paramName": "source",
      "url": "http://sunie.top:9013/api/1/upload"
    }
  },
  "picgoPlugins": {
    "picgo-plugin-web-uploader": true
  }
}

4.验证图片上传选项

img

四、其他错误

img

对于images文件夹没有写权限,尝试在容器中chmod +x images/还是无效
chmod 777 images/就可以了。完整命令:

docker exec -it chevereto_chevereto_1 chmod 777 /var/www/html/images

piwigo

一、启动piwigo

img
以下两种方式均可,已经有了在运行的mysql容器直接选第二种即可。

1.方式一:docker-compose

version: "3" 

services:
  piwigo:
    image: linuxserver/piwigo
    network_mode: bridge
    ports:
      - 9011:80
    links:
      - db
    volumes:
      - /docker/piwigo/config:/config
      - /mnt/hgfs/F:/F
      - /mnt/hgfs/G:/G
      - /mnt/hgfs/Server:/Server
    restart: unless-stopped

  db: 
    image: mysql
    network_mode: bridge
    environment:
      MYSQL_USER: "piwigo"
      MYSQL_PASSWORD: "piwigo"
      MYSQL_DATABASE: "piwigo"
      MYSQL_RANDOM_ROOT_PASSWORD: "true"

2. 方式二:link(已有mysql容器运行)

创建数据库:

docker exec -it mysql mysql -u root -p
mysql> create database piwigo default charset utf8 collate utf8_general_ci;

运行容器:

docker run -d -p 9011:80 \
    -v /docker/piwigo/config:/config \
    -v /mnt/hgfs/F:/F \
    -v /mnt/hgfs/G:/G \
    -v /mnt/hgfs/F/piwigo:/pictures \
    --restart=always \
    --link mysql \
    --name piwigo linuxserver/piwigo