Giter VIP home page Giter VIP logo

cloudreve-docker's Introduction

ViewCount wakatime

Hi folks, this is Xuewei Niu from Beijing. Welcome to my GitHub homepage. Here is a brief introduction about me:

  • 🎓 Beijing University of Posts and Telecommunications(2020-2023), MSc in Computer Science
  • 🎓 University of Jinan(2015-2019), BSc in Computer Science
  • 📱 Big Apple fan
  • ⭐️ Rustacean, Gopher
  • ⭐️ Open Source Enthusiast: Kata Containers Commiter, Maybe Kernel Developer, Apache Dubbo PMC
  • ⭐ Virtualization, Kernel, Networking, Container Technologies, Kubernetes, Cloud Native

As a developer and open-source enthusiast, I am actively hacking on katacontainers/katacontainers and apache/dubbo-go. Posts about development and other topics (with the vast majority in Chinese🇨🇳) are updated on my blog. Leaving a comment is always appreciated.

Reaching out to me via LinkedIn | Email is welcomed 🤟🤟🤟

cloudreve-docker's People

Contributors

chunfengyao avatar eternal-covenant avatar expoli avatar geektheripper avatar hjue avatar justxuewei avatar simon-ding avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

cloudreve-docker's Issues

cloudreve-docker,运行后,显示不正常。

虚拟机跑openwrt x64,运行cloudreve-docker,可以进入登录界面,有账号、密码的那种。回到本地openwrt arm64,运行cloudreve-docker,可以进入cloudreve的界面,不是完全打不开那种,但是啥都不显示,这怎么搞啊????

image

02

离线下载文件转存失败

感谢作者!
请问离线下载文件转存失败是什么原因?
另外失败原因无法完整显示,是不是要去log日志中查找?

转存失败

有些问题想请教

首先感谢大神的付出,辛苦维护
我是使用群辉Docker运行的,Docker小白不太会用
问题:
1.如何运行aria2啊
2.cloudreve本地策略,获取的直连仍然是api方式获取的带sing参数的地址
3.使用又拍存储策略上传成功,网页却不显示文件哦

不知道是哪里的问题,是不是我映射的目录权限问题啊?有QQ群么 方便大家一起讨论

Docker Hub 文档问题!

先贴出来文档: https://hub.docker.com/r/xavierniu/cloudreve

Docker Hub中镜像的地址和github中描述的镜像地址不一样(在github的问题上搜到的),相信有很多和我一样的都是pull失败,然后来github 看的,
看到麻烦修改一下

Docker hub镜像描述: xaiverniu/cloudreve:arm64v8
实际真是的镜像: xavierniu/cloudreve:arm64v8

Download almost disconnected, very slow

离线下载几个G的文件,下到80%左右就几乎断线了,而且idm重连再也连不上,排除vps的问题(因为之前用nextcloud没这现象),请问这是跟设置有关吗?还有添加离线下载后总是要选择下载位置,有没有办法设置好位置就不用选择直接就下到那个地方的。

无法解析配置文件 '/cloudreve/conf.ini':

docker run -d
--name cloudreve
-e PUID=1001
-e PGID=100
-e TZ="Asia/Shanghai"
--restart=unless-stopped
-v /srv/dev-disk-by-label-hgst/cloudrevedata/uploads:/cloudreve/uploads
-v /srv/dev-disk-by-label-hgst/cloudrevedata/temp:/downloads
-v /srv/dev-disk-by-label-hgst/cloudreve/configs/conf.ini:/cloudreve/conf.ini
-v /srv/dev-disk-by-label-hgst/cloudreve/configs/cloudreve.db:/cloudreve/cloudreve.db
-v /srv/dev-disk-by-label-hgst/cloudrevedata/avatar:/cloudreve/avatar
xavierniu/cloudreve

运行日志如下:
[Panic] 2021-03-22 14:51:37 无法解析配置文件 '/cloudreve/conf.ini': BOM: read /cloudreve/conf.ini: is a directory
panic: 无法解析配置文件 '/cloudreve/conf.ini': BOM: read /cloudreve/conf.ini: is a directory

goroutine 1 [running]:
github.com/cloudreve/Cloudreve/v3/pkg/util.(*Logger).Panic(0xc0002ac860, 0x117813b, 0x21, 0xc0005bfac0, 0x2, 0x2)
/ProjectCloudreve/Cloudreve/pkg/util/logger.go:74 +0xe5
github.com/cloudreve/Cloudreve/v3/pkg/conf.Init(0x7ffe74e4ff16, 0x13)
/ProjectCloudreve/Cloudreve/pkg/conf/conf.go:121 +0x1de
github.com/cloudreve/Cloudreve/v3/bootstrap.Init(0x7ffe74e4ff16, 0x13)
/ProjectCloudreve/Cloudreve/bootstrap/init.go:18 +0x3e
main.init.0()
/ProjectCloudreve/Cloudreve/main.go:23 +0x205

运行环境OMV5
确认已经创建conf.ini和cloudreve.db文件

请问这个问题如何解决

docker-compose up -d 报错

`root@Ko-1:~# docker-compose up -d
WARNING: The CLOUDREVE_AVATAR_PATH variable is not set. Defaulting to a blank string.
Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-build/
root_aria2_1 is up-to-date
root_caddy_1 is up-to-date
Creating root_cloudreve_1 ... error

ERROR: for root_cloudreve_1 Cannot create container for service cloudreve: create .: volume name is too short, names should be at least two alphanumeric characters

ERROR: for cloudreve Cannot create container for service cloudreve: create .: volume name is too short, names should be at least two alphanumeric characters
ERROR: Encountered errors while bringing up the project.
`
docker compose 这里面的目录 怎么不用 ${PWD}
这样写不是更好吗?
我启动不了..启动就报错..

离线下载转储存失败

Aria2和cloudreve都是本机docker运行链接也成功

文档中设置说明理解不了
尝试了几个方法都是提示转储失败
这里不知到是理解错误还是设置错误,请老大指点
image

image
image

临时下载目录
Cloudreve 会指定 Aria2 将文件下载到此目录中,下载完成后 Cloudreve 会复制到指定的存储策略,并删除文件。此目录必须为绝对路径,否则 Cloudreve 在任务下载完成后会找不到文件。

在k8s中启动时的挂载问题及优化建议

Hi,感谢你的镜像。

我在k8s中用它启动了cloudreve服务,但是有点坑,记录下以供参考。

根据Dockerfile定义,构建的cloudreve-main、启动脚本entrypoint.sh及其他volume统一放到了 /cloudreve 目录下,使用docker挂载完全没问题,不过用在k8s中出现了小坑(我是双节点k3s部署)。

挂载最主要的是conf.ini配置文件,在k8s中,定义为ConfigMap,同其他upload、avatar一起挂载,在启动后报错:无法发现entrypoint.sh,因为默认机制,挂载会清空容器目录中所有数据,当然,可以用subPath解决。

所以,有一个修改建议:编译后的二进制cloudreve-main放到 PATH 下,如 /bin/cloudreve-main,并在编译成功后主动赋予可执行权限,移除entrypoint.sh(有点小洁癖,它本身产生了根进程),并且使用CMD设置默认-c参数,这样可以方便设置conf.ini或用默认,且 /cloudreve 是干净的,示例:

ENTRYPOINT ["cloudreve-main"]
CMD ["-c", "/cloudreve/conf.ini"]

ps:顺道贴一个k8s示例

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: cloudreve-config
data:
  conf.ini: |
    [System]
    Mode = master
    Listen = :5212

    [Database]
    Type = mysql
    Host = mysql-ip-hostname
    Port = 3306
    User = root
    Password = 123456
    Name = cloudreve
    TablePrefix = cd_

    [Redis]
    Server = redis:6379
    Password = 123456
    DB = 0
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: cloudreve-deploy
  labels:
    app: cloudreve
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cloudreve
  template:
    metadata:
      labels:
        app: cloudreve
      annotations:
        port: "5212"
        golang: "1.16"
        cloudreve: "3.3.1"
        github: "xavier-niu/cloudreve-docker"
    spec:
      nodeSelector: # 固定到某个node标签上
        env: prod
      containers:
        - name: cloudreve
          image: docker.io/xavierniu/cloudreve:3.3.1
          command: ["sh","/cloudreve/entrypoint.sh"]
          ports:
            - containerPort: 5212
          volumeMounts:
            - mountPath: /cloudreve/conf.ini
              name: conf
              readOnly: true
              subPath: conf.ini
            - mountPath: /cloudreve/uploads
              name: upload
            - mountPath: /cloudreve/avatar
              name: avatar
            - mountPath: /cloudreve/cloudreve.db
              name: db
              subPath: cloudreve.db
      volumes:
        - name: conf
          configMap:
            name: cloudreve-config
            items:
              - key: conf.ini
                path: conf.ini
        - name: upload
          hostPath:
            path: /data/share/cloudreve/upload
        - name: avatar
          hostPath:
            path: /data/share/cloudreve/avatar
        - name: db
          hostPath:
            path: /data/share/cloudreve/
---
apiVersion: v1
kind: Service
metadata:
  name: cloudreve-svc
  labels:
    app: cloudreve
spec:
  selector:
    app: cloudreve
  ports:
  - name: cloudreve-port
    protocol: TCP
    port: 5212
    targetPort: 5212

默认上传路径错误 & 数据无法持久化

因为cloudreve主程序放置于/bin内,而默认储存方案储存路径为 upload/.....
导致存储路径为/bin/upload。

更新容器配置会导致数据库重新初始化,已上传的文件无法在cloudreve中读取。。。(我用的是portainer,是我的姿势不对?有没有数据库重建命令?)(可能更新版本也会导致这个问题)。

docker run模式运行无法使用webdav功能

硬件环境:Intel(R) Celeron(R) CPU J1900
系统环境:OpenWrt R20.12.12 GDQ v1.1[2021] Compiled by eSir

运行命令:

docker run -d --name cloudreve -e PUID=0 -e PGID=0 -e TZ="Asia/Shanghai" --restart=always \
  -v /opt/docker/volumes/cloudreve/uploads:/cloudreve/uploads \
  -v /opt/docker/volumes/cloudreve/conf.ini:/cloudreve/conf.ini \
  -v /opt/docker/volumes/cloudreve/cloudreve.db:/cloudreve/cloudreve.db \
  -v /opt/docker/volumes/cloudreve/avatar:/cloudreve/avatar \
  -v /opt/aria2/downloads:/opt/aria2/downloads \
  -p 5000:5212 \
  xavierniu/cloudreve

Windows文件管理器无法连接到服务器,MacOS可进行连接无法上传文件

docker映射路径为空

What happened?
将主机上的/mnt/user/映射为/cloudreve/uploads/uid/Tower,重启docker在网页上文件夹为空,但ssh命令ls可以读取到Tower文件夹内容
image
image

What do you expect it to be?
希望将主机内的目录挂载进cloudreve,并进行编辑移动解压等

How to reproduce it?
系统unraid6.9.2
root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='Cloudreve' --net='bridge' --privileged=true -e TZ="Asia/Shanghai" -e HOST_OS="Unraid" -p '5212:5212/tcp' -v '/mnt/user/App/cloudreve/uploads/':'/cloudreve/uploads':'rw' -v '/mnt/user/appdata/cloudreve/config':'/cloudreve/config':'rw' -v '/mnt/user/appdata/cloudreve/db':'/cloudreve/db':'rw' -v '/mnt/user/appdata/cloudreve/avatar':'/cloudreve/avatar':'rw' -v '/mnt/user/':'/cloudreve/uploads/1/Tower':'rw' --mount type=tmpfs,destination=/tmp 'xavierniu/cloudreve:latest' 5b14af093d81e2c15caf6b3116de662abc4241403e8aacc6de503d3b46d33010

Anything else?

求助

[root@kk ~]# --restart=unless-stopped \

-v :/cloudreve/uploads
-v :/cloudreve/conf.ini
-v :/cloudreve/cloudreve.db
-v :/cloudreve/avatar
xavierniu/cloudreve
-bash: PATH: No such file or directory

有没有可能加个一键拉起的按钮?

您好,我是初创公司 TeamCode,我们做的产品似乎适合本项目POC(proof of concept),可以给项目新手快速试用。

我建了一个 cloudrev 应用随时可以访问(会持续运行两周)

还有一些,比如 Grafana admin/admin, Swagger UI ,其他比如 GitLab, Jenkins, MySQL 等也都有,有兴趣再贴链接好了。

或许有点兴趣?

下载Docker Compose文件 这步下载文件是空的

wget https://raw.githubusercontent.com/xavier-niu/cloudreve-docker/master/docker-compose-amd64.yml
--2020-10-10 09:15:22--  https://raw.githubusercontent.com/xavier-niu/cloudreve-docker/master/docker-compose-amd64.yml
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.228.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.228.133|:443... failed: Connection refused.

下载下来是空文件

还有readme能补充图文最好了

Docker compose 环境文件

你好
在Docker compose 的方式里
如何查看与修改下载下来的环境文件呢?
运行了以下代码
wget -qO- https://raw.githubusercontent.com/xavier-niu/cloudreve-docker/master/docker-compose-env-example > .env

设置了 PUID PGID 后文件所有者仍然为root

我的启动命令如下

docker run -d \
  --name cloudreve \
  -e PUID=1000 \
  -e PGID=100 \
  -e TZ="Asia/Shanghai" \
  -p 5212:5212 \
  --restart=unless-stopped \
  -v /home/sherry/cloudreve/uploads:/cloudreve/uploads \
  -v /home/sherry/cloudreve/config:/cloudreve/config \
  -v /home/sherry/cloudreve/db:/cloudreve/db \
  -v /home/sherry/cloudreve/avatar:/cloudreve/avatar \
  xavierniu/cloudreve:latest

启动后,几个文件夹的所有者为PUID=1000的用户,但是文件夹中的文件所有者还是为root用户

cloudreve-docker,无法运行。

1.执行以下命令后:
docker pull xavierniu/cloudreve:3.0.0-arm64v8

2.mkdir -p /opt/120
&& touch /opt/120/conf.ini
&& touch /opt/120/cloudreve.db

3.docker run -d
--name cloudreve
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-p 5212:5212 \
--restart=unless-stopped
-v /opt/110:/cloudreve/uploads
-v /opt/120:/cloudreve/conf.ini
-v /opt/120:/cloudreve/cloudreve.db
xavierniu/cloudreve:3.0.0-arm64v8

4.报错:
docker run -d \

--name cloudreve
-e PUID=0 \
erniu/cloudreve:3.0.0-arm64v8docker: invalid reference format.
See 'docker run --help'.
root@OpenWrt:# -e PGID=0 \
-ash: -e: not found
root@OpenWrt:
# -e TZ=Asia/Shanghai \
-ash: -e: not found
root@OpenWrt:# -p 5212:5212 \
-ash: -p: not found
root@OpenWrt:
# --restart=unless-stopped
-v /opt/110:/cloudreve/uploads
-v /opt/120:/cloudreve/conf.ini
-v /opt/120:/cloudreve/cloudreve.db
xavierniu/cloudreve:3.0.0-arm64v8
-ash: --restart=unless-stopped: not found

关于Docker Run CAC方式Caddy容器报错

使用Docker Run CAC方式创建Caddy容器后,容器日志报错:

2021-01-19T08:10:45.758431248Z 2021/01/19 08:10:45 [WARNING] Sending telemetry (attempt 1): Post https://telemetry.caddyserver.com/v1/update/33db58e4-3b19-46bd-8191-a632df305dbd: dial tcp: lookup telemetry.caddyserver.com on 127.0.0.11:53: no such host - backing off and retrying
2021-01-19T08:10:53.846494974Z 2021/01/19 08:10:53 [WARNING] Sending telemetry (attempt 2): Post https://telemetry.caddyserver.com/v1/update/33db58e4-3b19-46bd-8191-a632df305dbd: dial tcp: lookup telemetry.caddyserver.com on 127.0.0.11:53: no such host - backing off and retrying
2021-01-19T08:11:20.948379820Z 2021/01/19 08:11:20 [WARNING] Sending telemetry (attempt 3): Post https://telemetry.caddyserver.com/v1/update/33db58e4-3b19-46bd-8191-a632df305dbd: dial tcp: lookup telemetry.caddyserver.com on 127.0.0.11:53: no such host - backing off and retrying
2021-01-19T08:12:25.049219669Z 2021/01/19 08:12:25 [ERROR] Sending telemetry: Post https://telemetry.caddyserver.com/v1/update/33db58e4-3b19-46bd-8191-a632df305dbd: dial tcp: lookup telemetry.caddyserver.com on 127.0.0.11:53: no such host

arm64v8 运行失败

提示standard_init_linux.go:211: exec user process caused "exec format error",

仅作为从机使用,内存占用达到2.43GB

部署镜像后,根据官网教程配置conf.ini为从机,除此无多余操作。
然后发现,只要进行下载后,镜像内存就会狂飙到2.5GB左右,而且再也不会降下来。
手动重启镜像后,内存恢复正常到32MB左右,然后只要没有下载任务的发生,内存就会一直维持在32MB
只要发生下载,内存就会涨上去,永远不会降下来。

[upgrade issue] from old version, entrypoint.sh mistakenly initialized database

I've correctly mounted my config file to /cloudreve/conf.ini and also use docker-compose to start my whole application cluster.

However, after upgrade from an old version which I can't remember detailed version number, the whole container cannot start.

After analysis, the entrypoint.sh seems is not correctly interpreted by /bin/bash -> /bin/sh inside alpine-based. Even the CLOUDREVE_DEFAULT_CONF exists, it still tries to move and create config file by using echo command in the sh file.

My configuration file personally configured to use MySQL as backend. So this operation will cause fatal panic to the program.

Solution: completely rewrite the entrypoint command in your docker-compose file by using:

entrypoint: ["cloudreve", "-c", "/cloudreve/conf.ini"]

You should not do those dirty works for the user. Just write a manual, let them read and fly.

docker映射路径为空

将主机上的/test映射为/cloudreve/uploads/uid/test,重启docker在网页上test文件夹为空,但是ssh进去ls能读取到下属文件夹

在已有ssl证书的前提下如何配置https?

我在nginx里输入了如下的配置

server {
listen 80;
listen 446 ssl;

server_name scoltzero.top;
ssl_certificate /etc/nginx/ssl/1_scoltzero.top_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/2_scoltzero.top.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
add_header X-Frame-Options DENY;

location / {
proxy_pass https://www.scoltzero.top:5212;
proxy_set_header Host $host;
}
}

但是仍然不能启用https,不知道为什么?请问还有什么需要设定的么?

离线下载无法连接

您好,我使用docker-compose方式部署,docker-compose.yml如下:

version: "3.5"

services:
  aria:
    image: p3terx/aria2-pro
    container_name: aria
    logging:
      options:
        max-size: 1m
    ports:
      - 6800:6800
      - 6888:6888
      - 6888:6888/udp
    environment:
      RPC_SECRET: "my-token"
    volumes:
      - /etc/aria:/config
      - /home/downloads:/downloads
    restart: unless-stopped

  cloudreve:
    image: xavierniu/cloudreve
    container_name: cloudreve
    ports:
      - 8011:5212
    volumes:
      - /home/file:/cloudreve/uploads
      - /home/downloads:/downloads
      - /etc/cloudreve/conf:/cloudreve/config
      - /etc/cloudreve/db:/cloudreve/db
      - /etc/cloudreve/avatar:/cloudreve/avatar
    # restart: unless-stopped

经检查两容器位于同一network,docker network inspect cloudreve_default输出如下:

[
    {
        "Name": "cloudreve_default",
        "Id": "c938b0779ce54c42b9c2a48c3be1cdb0cdb87c6162113676e26953b7ccf31a02",
        "Created": "2021-07-15T02:43:25.730826185Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",
                    "Gateway": "172.19.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "4bd88c9224119f52a66638f4b013900e9cc1c7b68f7203f6f9b6bdb9abbb7a92": {
                "Name": "aria",
                "EndpointID": "fd6838283d0ddc91491ab717549acf89a03a9d9027ab7af55f65c7530a65e43a",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "172.19.0.2/16",
                "IPv6Address": ""
            },
            "9b413324e0289bde5acc4fe1fc2bf813d8ffa33697dcd550aec3bf566b4eb8c7": {
                "Name": "cloudreve",
                "EndpointID": "6eebbfd1a6910d6a5b24639fddd8053f49e210cb9e99fc1b3b94597d2b6209ce",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "172.19.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "cloudreve",
            "com.docker.compose.version": "1.25.0"
        }
    }
]

此时aria RPC可以从外部访问,cloudreve中设置为:

测试链接报错:无法请求 RPC 服务, Post "http://127.0.0.1:6800/jsonrpc": dial tcp 127.0.0.1:6800: connect: connection refused,求指点,万分感谢!

docker-compose启动不了

What happened?
Creating network "cloudreve_cloudreve-network" with the default driver
Creating cloudreve_cloudreve_1 ... error
Creating cloudreve_aria2_1 ...

Creating cloudreve_aria2_1 ... error

ERROR: for cloudreve_aria2_1 Cannot start service aria2: cannot start a stopped process: unknown

ERROR: for cloudreve Cannot start service cloudreve: cannot start a stopped process: unknown

ERROR: for aria2 Cannot start service aria2: cannot start a stopped process: unknown
ERROR: Encountered errors while bringing up the project.

What do you expect it to be?

How to reproduce it?

version: '3'

services:
    # caddy: 
    #     image: nginx:alpine
    #     ports: 
    #         - 80:80
    #         - 443:443
    #     volumes: 
    #         - /dockercnf/nginx/conf.d:/etc/nginx/conf.d
    #         - /dockercnf/nginx/ssl:/etc/nginx/ssl
    #     networks: 
    #         - cloudreve-network
    #     restart: unless-stopped

    aria2:
        image: p3terx/aria2-pro
        logging:
            options:
                max-size: 1m
        ports:
            - 6800:6800
            - 6888:6888
            - 6888:6888/udp
        environment:
            - PUID=0
            - PGID=0
            - RPC_SECRET=zqBz5JGP
        volumes:
            - /dockercnf/aria2/conf:/config
            - /home/aria2/temp:/downloads
        networks:
            - cloudreve-network
        restart: unless-stopped

    cloudreve:
        image: xavierniu/cloudreve
        environment:
            - PUID=0
            - PGID=0
        volumes:
            - /home/file:/cloudreve/uploads
            - /home/aria2/temp:/downloads
            - /dockercnf/cloudreve/config:/cloudreve/config
            - /dockercnf/cloudreve/db:/cloudreve/db
            - /dockercnf/cloudreve/avatar:/cloudreve/avatar
        networks:
            - cloudreve-network

networks:
    cloudreve-network: null

Anything else?

cloudreve/conf.ini not work

xaiverniu/cloudreve:latest for linux/amd64
已经升级到V3.1.1
新特性支持原生https
但是docker版目前似乎endpoint.sh没把 -c conf.ini参数放进去

优化掉在宿主上预创建 conf.ini/cloudreve.db 的步骤

有个想法,目前的方式需要启动前在宿主上手动创建 con.inicloudreve.db,而这两个文件都是空白文件,对于 cloudreve 的初始化没有任何作用,仅仅只是为了后续实现配置的持久化。

预创建Cloudreve的数据库和配置文件,这里以/dockercnf/cloudreve为cloudreve配置目录。

如果没进行预创建者两个文件,docker 会在宿主上生成两个同名的目录,并挂载到容器中:

/cloudreve/conf.ini/
/cloudreve/cloudreve.db/

最终容器启动时因为同名目录无法初始化生成配置文件及数据库文件,导致初始化失败:

[Panic] 2021-05-11 23:52:08 无法解析配置文件 '/cloudreve/conf.ini': BOM: read /cloudreve/conf.ini: is a directory
panic: 无法解析配置文件 '/cloudreve/conf.ini': BOM: read /cloudreve/conf.ini: is a directory

goroutine 1 [running]:
github.com/cloudreve/Cloudreve/v3/pkg/util.(*Logger).Panic(0xc000254010, 0x117b2a8, 0x21, 0xc0000bbac0, 0x2, 0x2)
/ProjectCloudreve/Cloudreve/pkg/util/logger.go:74 +0xe5
github.com/cloudreve/Cloudreve/v3/pkg/conf.Init(0x7ffcf2722efe, 0x13)
/ProjectCloudreve/Cloudreve/pkg/conf/conf.go:121 +0x1de
github.com/cloudreve/Cloudreve/v3/bootstrap.Init(0x7ffcf2722efe, 0x13)
/ProjectCloudreve/Cloudreve/bootstrap/init.go:18 +0x3e
main.init.0()
/ProjectCloudreve/Cloudreve/main.go:23 +0x205

有个初步的想法,是提供一个运行配置目录,比如 /cloudreve/config/,思路如下:

  1. 容器中 /cloudreve/config/ 会用来保存 con.inicloudreve.db 文件

  2. 将宿主的一个目录,比如 /path/to/cloudreve/ 映射到容器的 /cloudreve/config/,用来持久化配置及数据库

  3. entrypoint.sh 脚本修改增加进入 /cloudreve/config/ 目录后再启动 cloudreve:

    #!/bin/bash
    
    chmod +x /cloudreve/cloudreve-main
    cd /cloudreve/config && /cloudreve/cloudreve-main -c conf.ini
    

这样可以省去在宿主上手动创建文件的过程,直接启动 docker 即可:

docker run -d \
  --name cloudreve \
  -e PUID=1000 \ # optional
  -e PGID=1000 \ # optional
  -e TZ="Asia/Shanghai" \ # optional
  -p 5212:5212 \ 
  --restart=unless-stopped \
  -v <PATH TO UPLOADS>:/cloudreve/uploads \
  -v <PATH TO CONFIG>:/cloudreve/config \    # change
  -v <PATH TO avatar>:/cloudreve/avatar \
  xavierniu/cloudreve

宿主上 <PATH TO CONFIG> 不存在的话,也会自动创建,而如果还是需要指定配置文件及数据库文件,也可以再单独指定,只不过需要修改容器中的挂载路径,增加 config 这一级目录

@xavier-niu

docker run OC方式 容器启动失败

docker run -d --name cloudreve -p 5212:5212 -v uploads:/cloudreve/uploads -v conf.ini:/cloudreve/conf.ini -v cloudreve.db:/cloudreve/cloudreve.db xavierniu/cloudreve

启动失败

docker logs

  ___ _                 _                    
  / __\ | ___  _   _  __| |_ __ _____   _____ 
 / /  | |/ _ \| | | |/ _ | '__/ _ \ \ / / _ \
/ /___| | (_) | |_| | (_| | | |  __/\ V /  __/
\____/|_|\___/ \__,_|\__,_|_|  \___| \_/ \___|

   V3.0.0  Commit #9910f8d  Pro=false
================================================

[Panic]   2020-05-04 20:55:03 无法解析配置文件 '/cloudreve/conf.ini': BOM: read /cloudreve/conf.ini: is a directory
panic: 无法解析配置文件 '/cloudreve/conf.ini': BOM: read /cloudreve/conf.ini: is a directory

goroutine 1 [running]:
github.com/HFO4/cloudreve/pkg/util.(*Logger).Panic(0xc000036308, 0xf0e564, 0x21, 0xc00058fbb8, 0x2, 0x2)
        /ProjectCloudreve/Cloudreve/pkg/util/logger.go:68 +0xe2
github.com/HFO4/cloudreve/pkg/conf.Init(0xc0000384a0, 0x13)
        /ProjectCloudreve/Cloudreve/pkg/conf/conf.go:110 +0x1c9
github.com/HFO4/cloudreve/bootstrap.Init(0xc0000384a0, 0x13)
        /ProjectCloudreve/Cloudreve/bootstrap/init.go:18 +0x3e
main.init.0()
        /ProjectCloudreve/Cloudreve/main.go:16 +0x120

cac模式部署时,阿里oss无法使用

前端页面提示:
上传失败(203:Error status : 502.),查看阿里文档为oss回调失败

检查caddy日志发现:
http: TLS handshake error from 39.98.96.4:34311: no certificate available for ''

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.