使用docker安装FreshRSS,就用的官方的quickrun命令稍微改了下-v参数的目录,但是好像挂载出来的目录里面没有任何配置文件,尝试重新创建容器果然不会保存配置。
请问有没有前辈知道用docker安装FreshRSS如何持久化配置?
compose?
按照 https://github.com/FreshRSS/FreshRSS/blob/edge/Docker/README.md 挂载可以保存数据,没有问题
新建一个文件"docker-compose.yaml",复制粘贴下面的内容,然后
sudo docker compose up -d
version: "2.4"
services:
freshrss-db:
image: postgres:15
container_name: freshrss-db
hostname: freshrss-db
restart: unless-stopped
logging:
options:
max-size: 10m
volumes:
- ./freshrss-db:/var/lib/postgresql/data
environment:
POSTGRES_DB: ${DB_BASE:-freshrss}
POSTGRES_USER: ${DB_USER:-freshrss}
POSTGRES_PASSWORD: ${DB_PASSWORD:-freshrss}
#command:
# Examples of PostgreSQL tuning.
# https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
# When in doubt, skip and stick to default PostgreSQL settings.
# - -c
# - shared_buffers=1GB
# - -c
# - work_mem=32MB
freshrss-app:
image: freshrss/freshrss:latest
container_name: freshrss-app
hostname: freshrss-app
restart: unless-stopped
ports:
- "8080:80"
depends_on:
- freshrss-db
logging:
options:
max-size: 10m
volumes:
- ./data:/var/www/FreshRSS/data
- ./extensions:/var/www/FreshRSS/extensions
environment:
TZ: Asia/Shanghai
CRON_MIN: '*/45'
# TRUSTED_PROXY: 172.16.0.1/12 192.168.0.1/16
volumes:
freshrss-db:
data:
extensions:
确定是用dockerrun方式而不是compose?那我怀疑我docker权限有问题。。
在/var/www/FreshRSS/data/users//下面吧
我用的是linuxserver 版
docker run -itd \
--name=freshrss \
--restart=always \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=China/Shanghai \
-p 11000:80 \
-v /home/docker/freshrss/config:/config \
--restart unless-stopped \
linuxserver/freshrss
/home/docker/freshrss/config 可改成自己要映射的目录
这里是直接用自带的sqlite数据库
另外如果时区不对
就修改下
/home/docker/freshrss/config/www/freshrss/data/users/用户名/config.php
开头部分改成如下
<?php
return array (
'enabled' => true,
'is_admin' => true,
'language' => 'zh-cn',
'timezone' => 'Asia/Shanghai',
'archiving' =>
怪了,我也是这样,我重新部署了一个,原先直接dockerrun可以持久化存储,唯独用官方的docker-compose.yaml示例那样没法持久化存储。
用 freshrss-db后也可以持久化存储,但原来用的是自带的SQLite,数据库不同怕是没法转移吧
草,volumes这个有点反直觉的。
data后设置的不是你想要放data的目录,而是 /var/www/FreshRSS/data
当您在docker-compose.yml
文件中为volumes
参数指定路径时,如果您使用./
作为路径,这通常表示服务容器内的当前工作目录。这意味着,如果您的服务配置为使用当前工作目录作为卷的挂载点,那么它会将宿主机上当前docker-compose.yml
文件所在的目录作为挂载的目标。