Docker常用应用之稍后阅读

1.简介

wallabag是一款开源的,可以自托管的稍后阅读工具。提供了浏览器插件和手机客户端,可以很方便的收藏文章用于稍后再看。

wallabag官网wallabag github地址wallabag dockerhub

2.部署

2.1.docker部署

cd /docker_data/
mkdir -p wallabag/data
cd wallabag
vi docker-compose.yml
version: '3'
services:
  wallabag:
    image: wallabag/wallabag
    container_name: wallabag
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
      - SYMFONY__ENV__DATABASE_HOST=wallabag_mysql
      - SYMFONY__ENV__DATABASE_PORT=3306
      - SYMFONY__ENV__DATABASE_NAME=wallabag
      - SYMFONY__ENV__DATABASE_USER=wallabag
      - SYMFONY__ENV__DATABASE_PASSWORD=wallapass
      - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
      - SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_"
      - SYMFONY__ENV__REDIS_HOST=wallabag_redis
      - SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
      - SYMFONY__ENV__FROM_EMAIL=666666666@qq.com
      - SYMFONY__ENV__DOMAIN_NAME=https://reader.giegie.top
      - SYMFONY__ENV__SERVER_NAME="monkey's wallabag"
      - TZ=Asia/Shanghai
    volumes:
      - /docker_data/wallabag/images:/var/www/wallabag/web/assets/images
    healthcheck:
      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"]
      interval: 1m
      timeout: 3s
    depends_on:
      - db
      - redis
  db:
    image: mariadb
    container_name: wallabag_mysql
    user: "1000:1000"       # 宿主docker执行用户的UID和PID,容器内以1000.1000执行mysql
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
      - TZ=Asia/Shanghai
    volumes:
      - /docker_data/wallabag/data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      interval: 20s
      timeout: 3s
  redis:
    image: redis:alpine
    container_name: wallabag_redis
    environment:
      - TZ=Asia/Shanghai
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 20s
      timeout: 3s
networks:               #所有的容器都在all_net上,彼此之间可以使用容器名访问,因此Nginx proxy manager可以方向代理,容器不需要把端口暴露在宿主机
  default:
    name: all_net
    external: true
docker compose up -d

2.2.添加反向代理

在DNS域名提供商提前做好解析

在Nginx Proxy Manager中添加

image-20241122105523829

image-20241122105555009

3.登录

默认用户名密码 wallabag/wallabag

4.常用设置

设置语言:My account ---> Config --->Language --->简体中文

修改密码:我的账户---》配置---》密码

5.疑难杂症

5.1.保存图片到本地

我的账户---》内部设置---》杂项 ---》在本地缓存图片---》1

wallabag容器内使用nobody执行的,images创建出来在宿主机的用户是root,因此无法在images下创建目录,权限不足

# 1.可以把images目录权限修改为777
cd /docker_data/wallabag
sudo chmod 777 images
# 2.可以把images目录属组修改为65534(容器内nobody uid为65534),用这个方法会导致宿主机docker执行用户无法进入目录
sudo chown -R 65534:65534 images

5.2.异步导入

我的账户---》内部设置---》启用 Redis 来异步导入数据---》1

试了很多次异步导入,json文件导入后,总是不会启动,可以用下面的命令手动启动

docker exec -it wallabag_redis redis-cli
# 可以看到redis中已经有了key,但就是不开始导入
docker exec -it --user nobody wallabag /var/www/wallabag/bin/console wallabag:import:redis-worker <type> --env=prod
# 其中<type>是你导入的类型,比如firefox、chrome、wallabag_v2等
posted @ 2024-12-02 16:49  monkey6  阅读(30)  评论(0编辑  收藏  举报