请按照以下模版详细描述您遇到的问题:
当前服务器版本
ubuntu 24.04
部署/操作过程(请说明二进制部署/docker部署;出现错误的操作步骤)
version: '3.7'
services:
db:
image: mariadb:10.11
container_name: mysql
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=Passw0rd
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile/mysql/db:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- seafile-net
memcached:
image: memcached:1.6
container_name: memcached
restart: unless-stopped
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:12.0-latest
container_name: seafile
restart: unless-stopped
volumes:
- /opt/seafile/data:/shared
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=Passw0rd
- SEAFILE_ADMIN_EMAIL=me@example.com
- SEAFILE_ADMIN_PASSWORD=asecret
- JWT_PRIVATE_KEY=XI1Hso95wl7F0ImA5VakpfpjoHs7t0wa
depends_on:
db:
condition: service_healthy
memcached:
condition: service_started
ports:
- "80:80"
- "443:443"
networks:
- seafile-net
networks:
seafile-net:
初次部署成功,并上传了10多个GB的数据。
cat ~/.env
# 启用 HTTPS 协议
SEAFILE_SERVER_PROTOCOL=https
# 你的域名,注意不要加协议前缀
SEAFILE_SERVER_HOSTNAME=seafile.example.cn
# 用于 Caddy 存储证书的卷路径(可选,有默认值)
SEAFILE_CADDY_VOLUME=/opt/seafile-caddy
cat ~/docker-compose.yml
version: '3.7'
services:
db:
image: mariadb:10.11
container_name: mysql
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=Passw0rd
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile/mysql/db:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- seafile-net
memcached:
image: memcached:1.6
container_name: memcached
restart: unless-stopped
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:12.0-latest
container_name: seafile
restart: unless-stopped
volumes:
- /opt/seafile/data:/shared
env_file:
- .env
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=Passw0rd
- SEAFILE_ADMIN_EMAIL=me@example.com
- SEAFILE_ADMIN_PASSWORD=asecret
- JWT_PRIVATE_KEY=XI1Hso95wl7F0ImA5VakpfpjoHs7t0wa
depends_on:
db:
condition: service_healthy
memcached:
condition: service_started
# ports:
# - "80:80"
# - "443:443"
networks:
- seafile-net
caddy:
image: lucaslorentz/caddy-docker-proxy:2.9-alpine
container_name: seafile-caddy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${SEAFILE_CADDY_VOLUME:-/opt/seafile-caddy}:/data/caddy
restart: unless-stopped
networks:
- seafile-net
networks:
seafile-net:
root@seafile:~# tree /opt/seafile-caddy/
/opt/seafile-caddy/
└── certs
├── example.cn.key
└── example.cn.pem
执行 docker-compose down && docker-compose up -d 之后http或https都访问不了
再次调整
cat ~/docker-compose.yml
version: '3.7'
services:
db:
image: mariadb:10.11
container_name: mysql
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=Passw0rd
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile/mysql/db:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- seafile-net
memcached:
image: memcached:1.6
container_name: memcached
restart: unless-stopped
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:12.0-latest
container_name: seafile
restart: unless-stopped
volumes:
- /opt/seafile/data:/shared
env_file:
- .env
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=Passw0rd
- SEAFILE_ADMIN_EMAIL=me@example.com
- SEAFILE_ADMIN_PASSWORD=asecret
- JWT_PRIVATE_KEY=XI1Hso95wl7F0ImA5VakpfpjoHs7t0wa
depends_on:
db:
condition: service_healthy
memcached:
condition: service_started
networks:
- seafile-net
# 不再直接暴露端口给宿主机,由 nginx 通过内部网络访问
nginx:
image: nginx:1.25.3-alpine
container_name: nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
# 挂载自定义的 nginx 配置文件
- /opt/seafile/nginx/seafile.conf:/etc/nginx/conf.d/default.conf:ro
# 挂载 SSL 证书(请根据实际情况调整路径)
- /opt/seafile-caddy/certs:/etc/nginx/certs:ro
# 挂载日志目录(可选)
- /opt/seafile/nginx/logs:/var/log/nginx
depends_on:
- seafile
networks:
- seafile-net
networks:
seafile-net:
执行 docker-compose down && docker-compose up -d 之后通过https能够访问并登录,登录后以前上传的数据都看不到。
root@seafile:~# du /opt -h -d 1
20K /opt/seafile-caddy
12K /opt/containerd
10G /opt/seafile
10G /opt