由于常用的服务有好几个,迁移起来比较麻烦,于是把几个docker-compose整合到了一起。

完整docker-compose.yml
# 随机生成一个密码
#docker exec -it alist ./alist admin random
# 手动设置一个密码,`NEW_PASSWORD`是指你需要设置的密码
#sudo docker exec -it alist ./alist admin set 123123
#使用 docker,请自行映射以下两个默认路径(映射至宿主机相同的目录) 已经在yml里映射好了
#/opt/alist/data/temp/aria2
#/opt/alist/data/temp/qbittorrent
version: '3.8'
services:
frps_service:
image: snowdreamtech/frps
restart: always
network_mode: "host"
volumes:
- ./frp/frps.toml:/etc/frp/frps.toml
container_name: frps_service
# frpc_service1:
# image: snowdreamtech/frpc
# restart: always
# network_mode: "host"
# volumes:
# - ./frp/frpc1.toml:/etc/frp/frpc.toml
# container_name: frpc_service1
# qbittorrent:
# container_name: qbittorrent
# image: linuxserver/qbittorrent
# environment:
# - PUID=0
# - PGID=0
# - TZ=Asia/Shanghai
# - UMASK_SET=022
# volumes:
# - './qbittorrent/config:/config'
# - './downloads:/downloads'
# - './downloads/temp/qbittorrent:/opt/alist/data/temp/qbittorrent'
# ports:
# - 6881:6881
# - 6881:6881/udp
# - 8080:8080
# networks:
# - internal_network
# - external_network
# restart: unless-stopped
aria2-pro:
container_name: aria2-pro
image: p3terx/aria2-pro
environment:
- PUID=0
- PGID=0
- UMASK_SET=022
- RPC_SECRET=设置个密码
- RPC_PORT=6800
- LISTEN_PORT=6888
- DISK_CACHE=64M
- IPV6_MODE=false
- UPDATE_TRACKERS=true
- CUSTOM_TRACKER_URL=
- TZ=Asia/Shanghai
volumes:
- './aria2/config:/config'
- './downloads:/downloads'
- './downloads/temp/aria2:/opt/alist/data/temp/aria2'
ports:
- 6800:6800
- 6888:6888
- 6888:6888/udp
networks:
- internal_network
- external_network
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 1m
ariang:
container_name: ariang
image: p3terx/ariang
command: --port 6880 --ipv6
networks:
- internal_network
- external_network
ports:
- 6880:6880
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 1m
alist:
restart: always
volumes:
- '/www:/www'
- './alist/data:/opt/alist/data'
- './downloads/temp/aria2:/opt/alist/data/temp/aria2'
- './downloads/temp/qbittorrent:/opt/alist/data/temp/qbittorrent'
ports:
- '5244:5244'
environment:
- PUID=0
- PGID=0
- UMASK=022
container_name: alist
image: 'xhofe/alist:main'
networks:
- external_network
# web:
# container_name: misskey_web
# image: misskey/misskey:latest
# restart: always
# links:
# - db
# - redis
# # - meilisearch
# depends_on:
# db:
# condition: service_healthy
# redis:
# condition: service_healthy
# # meilisearch:
# # condition: service_healthy
# ports:
# - "3000:3000"
# networks:
# - internal_network
# - external_network
# volumes:
# - './misskey/files:/misskey/files'
# - './misskey/.config:/misskey/.config:ro'
# redis:
# container_name: misskey_redis
# restart: always
# image: redis:7-alpine
# networks:
# - internal_network
# volumes:
# - './misskey/redis:/data'
# healthcheck:
# test: "redis-cli ping"
# interval: 5s
# retries: 20
# db:
# container_name: misskey_db
# restart: always
# image: postgres:15-alpine
# networks:
# - internal_network
# env_file:
# - './misskey/.config/docker.env'
# volumes:
# - './misskey/db:/var/lib/postgresql/data'
# healthcheck:
# test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
# interval: 5s
# retries: 20
# meilisearch:
# restart: always
# image: getmeili/meilisearch:v1.3.4
# environment:
# - MEILI_NO_ANALYTICS=true
# - MEILI_ENV=production
# env_file:
# - './misskey/config/meilisearch.env'
# networks:
# - internal_network
# volumes:
# - './misskey/meili_data:/meili_data'
networks:
internal_network:
internal: true
external_network:
driver: bridge
使用此种方式是最简单的了,直接把当前文件夹打包迁移,直接部署即可!

问题排坑
nginx的反代问题
首先是alist和aira2的通信问题,因为使用了反代,需要在反代中增加不同的端口配置
#PROXY-START/
location ^~ /
{
proxy_pass http://ip:6880;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
# proxy_hide_header Upgrade;
add_header X-Cache $upstream_cache_status;
#Set Nginx Cache
set $static_fileY2Ol9AFq 0;
if ( $uri ~* ".(gif|png|jpg|css|js|woff|woff2)$" )
{
set $static_fileY2Ol9AFq 1;
expires 1m;
}
if ( $static_fileY2Ol9AFq = 0 )
{
add_header Cache-Control no-cache;
}
}
location /jsonrpc {
proxy_pass http://localhost:6800;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#PROXY-END/
传输报错问题
一直报错,最后发现是权限和映射的问题。

failed to transfer file: failed to get files: lstat /opt/alist/data/temp/aria2
aria2和alist的GUID和PGID都设置成了0方便通信,其次为了确保两个docker的文件夹能传输,都映射到了合适的位置
本文作者:ZKCOI
文章名称:整合aria2、alist、misskey、frp的docker-compose.yml
文章链接:https://www.zkcoi.com/365up/program/3111.html
本站资源仅供个人学习和交流,如若转载,请注明出处,详见《免责声明》。
微信扫一扫
支付宝扫一扫 