支持多家云存储驱动的公有云文件系统.

为什么要使用 PUID 和 PGID 参见 Understanding PUID and PGID。 假设当前登陆用户为 root,则执行 id root 就会得到类似于下面的一段代码:
uid=1000(root) gid=1001(root)则在运行命令中的 PUID 填入 1000,PGID填入 1001。
参考:
.env
# Required
# > PUID & PGID
CLOUDREVE_PUID=<PUID>
CLOUDREVE_PGID=<PGID>
# > Aria2
ARIA2_RPC_SECRET=<SECRET>
# Optional
# But I highly recommend you keep items below as default
# unless you know what you are doing.
# > Temp download folder for Aria2 & Cloudreve
TEMP_FOLDER_PATH=/dockercnf/aria2/temp
# > Aria2
ARIA2_CONFIG_PATH=/dockercnf/aria2/conf
# > Cloudreve
CLOUDREVE_UPLOAD_PATH=/sharedfolders
CLOUDREVE_CONF_PATH=/dockercnf/cloudreve/config
CLOUDREVE_DB_PATH=/dockercnf/cloudreve/db
CLOUDREVE_AVATAR_PATH=/dockercnf/cloudreve/avatar根据需要对环境变量进行修改
必填项
CLOUDREVE_PUID: PUID的获取方式详见 获取 PUID 和 PGID CLOUDREVE_PGID: PGID的获取方式详见 获取 PUID 和 PGID ARIA2_RPC_SECRET: Aria2 RPC密码(你可以去 这里 生成随机字符串)。请记下该密码!在后续Cloudreve设置Aria2中会使用。
选填项(如无特殊需要不建议修改)
TEMP_FOLDER_PATH: 离线下载临时文件夹路径 ARIA2_CONFIG_PATH: Aria2的配置文件夹路径 CLOUDREVE_UPLOAD_PATH: Cloudreve上传文件夹路径 CLOUDREVE_CONF_PATH: Cloudreve配置文件夹路径 CLOUDREVE_DB_PATH: Cloudreve数据库文件夹路径
xavier-niu/cloudreve-docker 该docker-compose文件仅适用于linux/amd64架构,如果您正在使用arm请尝试修改部分参数。
docker-compose.yml
version: '3'
services:
aria2:
image: p3terx/aria2-pro
logging:
options:
max-size: 1m
ports:
- 6800:6800
- 6888:6888
- 6888:6888/udp
environment:
- PUID=${CLOUDREVE_PUID}
- PGID=${CLOUDREVE_PGID}
- RPC_SECRET=${ARIA2_RPC_SECRET}
volumes:
- ${ARIA2_CONFIG_PATH}:/config
- ${TEMP_FOLDER_PATH}:/downloads
networks:
- cloudreve-network
restart: unless-stopped
cloudreve:
image: xavierniu/cloudreve
ports:
- 5212:5212
environment:
- PUID=${CLOUDREVE_PUID}
- PGID=${CLOUDREVE_PGID}
volumes:
- ${CLOUDREVE_UPLOAD_PATH}:/cloudreve/uploads
- ${TEMP_FOLDER_PATH}:/downloads
- ${CLOUDREVE_CONF_PATH}:/cloudreve/config
- ${CLOUDREVE_DB_PATH}:/cloudreve/db
- ${CLOUDREVE_AVATAR_PATH}:/cloudreve/avatar
networks:
- cloudreve-network
networks:
cloudreve-network:docker-compose up -d说明
6800,Secret为你对ARIA2_RPC_SECRET设置的随机字符串。http://aria2:6800/ARIA2_RPC_SECRET设置的随机字符串/downloads


完成

参考:
如果要使用
docker-compose.yml文件中定义的环境变量,则必须将它们放在.env文件中。 你可以使用env_file配置选项来使用具有变量定义的任何文件。
Compose 支持在名为.env放置在项目目录中的环境文件中声明默认环境变量。如果 Docker Compose 版本早于1.28,.env则从执行命令的当前工作目录加载文件,如果使用--project-directory选项显式设置,则从项目目录加载文件。这种不一致已经+v1.28通过将默认.env文件路径限制为项目目录来解决。您可以使用--env-file命令行选项覆盖默认值 .env并指定自定义环境文件的路径。
项目目录按优先顺序指定:
--project-directory 旗帜--file标志的文件夹以下语法规则适用于该.env文件:
env文件中的每一行都符合VAR=VAL格式。#作为注释处理并被忽略。注意:
.env文件中定义的值。同样,通过命令行参数传递的值也优先。.env文件中定义的环境变量在容器内不会自动可见。要设置容器适用的环境变量,请遵循Compose中的环境变量主题中的指南,该主题 描述了如何将 shell 环境变量传递到容器、在 Compose 文件中定义环境变量等。$ cat .env
TAG=v1.5
$ cat docker-compose.yml
version: '3'
services:
web:
image: "webapp:${TAG}"如果您有多个环境变量,则可以通过将它们添加到名为的默认环境变量文件.env或使用--env-file命令行选项提供环境变量文件的路径来替换它们。
您的配置选项可以包含环境变量。Compose 使用来自docker-compose运行的 shell 环境的变量值。例如,假设 shell 包含POSTGRES_VERSION=9.3并且您提供以下配置:
db:
image: "postgres:${POSTGRES_VERSION}"当您docker-compose up使用此配置运行时,ComposePOSTGRES_VERSION在 shell 中查找 环境变量并将其值替换为 in。对于此示例,Compose在运行配置之前解析imageto postgres:9.3。
如果未设置环境变量,Compose 将替换为空字符串。在上面的示例中,如果POSTGRES_VERSION未设置,则该image选项的值为postgres:。
您可以使用.env文件设置环境变量的默认值 ,Compose 会自动在项目目录(您的 Compose 文件的父文件夹)中查找该文件。在 shell 环境中设置的值会覆盖在.env文件中设置的值。
使用 docker stack deploy 时的注意事项 该
.env file功能仅在您使用该docker-compose up命令时有效,而不适用于docker stack deploy.
这两个$VARIABLE和${VARIABLE}语法的支持。此外,当使用2.1 文件格式时,可以使用典型的 shell 语法提供内联默认值:
${VARIABLE:-default}评估default是否VARIABLE在环境中未设置或为空。${VARIABLE-default}``default仅当VARIABLE在环境中未设置时才评估为。同样,以下语法允许您指定必需变量:
${VARIABLE:?err}退出并显示错误消息,其中包含环境中的errif VARIABLE未设置或为空。${VARIABLE?err}退出并显示一条错误消息,其中包含errif VARIABLE在环境中未设置。${VARIABLE/foo/bar}不支持其他扩展的 shell 样式功能,例如。
$$当您的配置需要文字美元符号时,您可以使用(双美元符号)。这也可以防止 Compose 插入值,因此 a$$ 允许您引用不想由 Compose 处理的环境变量。
web:
build: .
command: "$$VAR_NOT_INTERPOLATED_BY_COMPOSE"如果您忘记并使用单个美元符号 ( $),Compose 会将值解释为环境变量并警告您:
The VAR_NOT_INTERPOLATED_BY_COMPOSE is not set. Substituting an empty string.docker-compose --env-file ./config/.env.dev up单个容器指定 env-file
env_file:
version: '3'
services:
app:
image: nextcloud:fpm-alpine
container_name: nextcloud_app
restart: always
volumes:
- ${DATA_DIR_APP}:/var/www/html
environment:
- POSTGRES_HOST=db
- REDIS_HOST=redis
env_file:
- db.env
docker-compose run -e DEBUG=1 web python console.py参考:
Grant access to secrets on a per-service basis using the per-service
secretsconfiguration. Two different syntax variants are supported.The short syntax variant only specifies the secret name. This grants the container access to the secret and mounts it at
/run/secrets/<secret_name>within the container. The source name and destination mountpoint are both set to the secret name.The following example uses the short syntax to grant the
redisservice access to themy_secretandmy_other_secretsecrets. The value ofmy_secretis set to the contents of the file./my_secret.txt, andmy_other_secretis defined as an external resource, which means that it has already been defined in Docker, either by running thedocker secret createcommand or by another stack deployment. If the external secret does not exist, the stack deployment fails with asecret not founderror.
version: "3.9"
services:
redis:
image: redis:latest
deploy:
replicas: 1
secrets:
- my_secret
- my_other_secret
secrets:
my_secret:
file: ./my_secret.txt
my_other_secret:
external: truehttps://github.com/nextcloud/docker
version: '3.2'
services:
db:
image: postgres
restart: always
volumes:
- db:/var/lib/postgresql/data
environment:
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
secrets:
- postgres_db
- postgres_password
- postgres_user
app:
image: nextcloud
restart: always
ports:
- 8080:80
volumes:
- nextcloud:/var/www/html
environment:
- POSTGRES_HOST=db
- POSTGRES_DB_FILE=/run/secrets/postgres_db
- POSTGRES_USER_FILE=/run/secrets/postgres_user
- POSTGRES_PASSWORD_FILE=/run/secrets/postgres_password
- NEXTCLOUD_ADMIN_PASSWORD_FILE=/run/secrets/nextcloud_admin_password
- NEXTCLOUD_ADMIN_USER_FILE=/run/secrets/nextcloud_admin_user
depends_on:
- db
secrets:
- nextcloud_admin_password
- nextcloud_admin_user
- postgres_db
- postgres_password
- postgres_user
volumes:
db:
nextcloud:
secrets:
nextcloud_admin_password:
file: ./nextcloud_admin_password.txt # put admin password in this file
nextcloud_admin_user:
file: ./nextcloud_admin_user.txt # put admin username in this file
postgres_db:
file: ./postgres_db.txt # put postgresql db name in this file
postgres_password:
file: ./postgres_password.txt # put postgresql password in this file
postgres_user:
file: ./postgres_user.txt # put postgresql username in this file感谢帮助!
本文作者: yiyun
本文链接: https://moeci.com/posts/分类-docker/docker-cloudreve/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!