当前位置: 首页 > 工具软件 > Miniflux 2 > 使用案例 >

使用docker-compose安装Miniflux RSS

乌鸿宝
2023-12-01

Overview

大体上是需要按照这个官方教程安装,然而,这个文档不是只需要做Docker Installation这一部分的内容。在Miniflux真正能跑起来之前,还需要做Database Configuration这一部分。Docker会把data从服务器上指定目录映射到Docker容器内的一个文件夹,这样即使Docker被删掉数据也可以被保存下来。

Steps

  1. 首先我们可以先按照“Database Installation”这一部分,生成一个miniflux的文件夹然后在里边生成docker-config.yml
version: '3.4'
services:
  service.miniflux:
    image: miniflux/miniflux:latest
    container_name: miniflux
    ports:
      - 49234:8080
    depends_on:
      - database.postgres
    environment:
      - DATABASE_URL=postgres://miniflux:password@database.postgres/miniflux?sslmode=disable
      - RUN_MIGRATIONS=1
      - CREATE_ADMIN=1
      - ADMIN_USERNAME=admin
      - ADMIN_PASSWORD=password
  database.postgres:
    image: postgres:alpine
    container_name: postgres-miniflux
    environment:
      - POSTGRES_USER=miniflux
      - POSTGRES_PASSWORD=password
    volumes:
      - ~/miniflux/data/:/var/lib/postgresql/data
    restart: always

其中比较关键的是volumes,它配置了postgres数据库最后会被存储到硬盘上的哪里。
可以尝试使用以下命令启动,

docker-compose up -d

但是一定会失败因为数据库并没有创建,会报错没有数据库

postgres-miniflux    | 2022-05-19 00:10:20.451 UTC [34] FATAL:  database "miniflux" does not exist

Tips

  • 如果需要重新来生成数据库,杀掉docker实例是没有用的,需要暴力删掉这个目录,然后postgres才会重新生成
  • 启动容器的时候,如果使用了-d选项,那么表示这个instance会在后台启动,这个时候log不会被输出到终端,所以如果想要得到命令的输出,那么就不要加-d
  • 如果同时又别的Docker实例在跑并且也在用postgres(比如Tiny Tiny RSS),需要把端口从默认的5432改成别的不然会打架。(我就直接把TTRSS杀了)
  1. 这个时候我才发现我们需要手动创建数据库,就是做一下Database Configuration这部分,需要注意的是因为我的服务器本身没有安装postgres所以需要在容器中做这些操作(跟官方教程略微不同)。基本上就是在所有的命令前边加docker exec -it postgres-miniflux 并且在命令后边加-U postgres。最后一个操作不需要加因为需要superuser操作
# Create a database user for Miniflux
$ docker exec -it postgres-miniflux createuser -U postgres -P miniflux

# Create a database for miniflux that belongs to our user
$ docker exec -it postgres-miniflux createdb -U postgres -O miniflux miniflux

# Create the extension hstore as superuser
$ docker exec -it postgres-miniflux psql miniflux -c 'create extension hstore'
CREATE EXTENSION
  • docker-compose exec似乎因为缺少/bin/bash所以不能运行,(它也不报错这个大坑货)所以需要使用docker exec
  • -it可以让这些命令执行的时候变成interactive交互的(否则无法设置user的密码)
  1. 搞完这些之后再去执行以下的命令就大工告成啦!
docker exec -it postgres-miniflux /usr/bin/miniflux -migrate

Reference

  • https://miniflux.app/docs/installation.html#docker
 类似资料: