我正在尝试使用
vaultwarden
进行 docker
设置和工作。
我按照 docker 页面上的 docker 安装,然后按照本教程进行 vaultwarden https://www.youtube.com/watch?v=v_7vJDwGWug.
运行命令时一切似乎都很好:
docker-compose -d up
从视频中运行包含以下内容的 .yml 文件:
version: "3.9"
services:
vaultwarden:
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- /opt/vw:/data
ports:
- "80:80"
- "3012:3012"
然而,当我跑步时:
ls /opt/vw
它告诉我在该文件夹中没有创建任何内容,并且应该在其中创建文件。
做了更多的挖掘,我检查了容器的 docker 日志,发现了一些错误。这些错误是:
[INFO] No .env file found.
[2023-03-18 17:07:53.347][vaultwarden::util][ERROR] Can't create 'data/rsa_key.pem': Permission denied
[2023-03-18 17:07:53.347][vaultwarden][ERROR] Error creating keys, exiting...
我不知道“找不到 .env 文件”是怎么回事,但其他错误告诉我它没有足够高的权限在指定卷内创建文件和文件夹。
我认为这是文件共享的问题,因为我之前读过一些相关内容,所以我转到了码头设置,然后是资源,然后是文件共享并尝试添加目录(我试过
/opt
,/
, /home
、/opt/vw
和 /data
) 到那里,这样它就可以访问它们。我希望这会导致 vaultwarden
容器有权创建文件。不幸的是,这似乎没有用,因为我仍然遇到错误。
我去了关于如何启用文件共享的码头页面,https://docs.docker.com/desktop/faqs/linuxfaqs/#how-do-i-enable-file-sharing,弄清楚如何文件分享,这是迄今为止我最终陷入困境的地方。
我很茫然,因为似乎这个页面唯一告诉我的是确保
/etc/subgid
和/etc/subuid
存在并输出:
MyUser:100000:65536
/etc/subgid
和/etc/subuid
都存在并在执行时输出:
cat /etc/(subgid or subuid)
我是否需要将其更改为 ID 0 而不是输出:
MyUser:1000:65536
或者 root 是否有不同的 ID? 对此问题的任何帮助将不胜感激,因为我已经花了 5 个多小时试图解决这个问题。
/opt/vw
的权限更新为 777 以验证是否有效。chmod 777 /opt/vw
vaultwarden
容器中运行进程的用户。由主脚本启动的内部进程可能由实际上无权写入目录的非 root 用户运行。docker top <container-name>
entrypoint:
- chown
- <desired-user>:<desired-group>
- /data
- &&
- <your-script.sh or whatever you want to run>