大体上是需要按照这个官方教程安装,然而,这个文档不是只需要做Docker Installation
这一部分的内容。在Miniflux真正能跑起来之前,还需要做Database Configuration
这一部分。Docker会把data从服务器上指定目录映射到Docker容器内的一个文件夹,这样即使Docker被删掉数据也可以被保存下来。
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
-d
选项,那么表示这个instance会在后台启动,这个时候log不会被输出到终端,所以如果想要得到命令的输出,那么就不要加-d
postgres
(比如Tiny Tiny RSS
),需要把端口从默认的5432
改成别的不然会打架。(我就直接把TTRSS杀了)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的密码)docker exec -it postgres-miniflux /usr/bin/miniflux -migrate