通过 Docker 部署 Seafile 网盘(最新版)
最新版
通过 Docker 直接安装 12 版本最新版,借助 Nginx 反向代理,不使用 Seadoc 功能。由于不暴露任何端口至公网,反向代理直接代理 Seafile 容器内部 80 端口即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
version: "3.7" services: db: image: ${SEAFILE_DB_IMAGE} container_name: seafile-mysql environment: - MYSQL_ROOT_PASSWORD=${INIT_SEAFILE_MYSQL_ROOT_PASSWORD} - MYSQL_LOG_CONSOLE=true - MARIADB_AUTO_UPGRADE=1 volumes: - ${SEAFILE_MYSQL_VOLUME}:/var/lib/mysql networks: - xxxx healthcheck: test: - CMD - /usr/local/bin/healthcheck.sh - --connect - --mariadbupgrade - --innodb_initialized interval: 20s start_period: 30s timeout: 5s retries: 10 memcached: image: ${SEAFILE_MEMCACHED_IMAGE} container_name: seafile-memcached entrypoint: memcached -m 256 networks: - xxxx seafile: image: ${SEAFILE_IMAGE} container_name: seafile volumes: - ${SEAFILE_VOLUME}:/shared environment: - DB_HOST=${SEAFILE_MYSQL_DB_HOST} - DB_PORT=${SEAFILE_MYSQL_DB_PORT} - DB_USER=${SEAFILE_MYSQL_DB_USER} - DB_ROOT_PASSWD=${INIT_SEAFILE_MYSQL_ROOT_PASSWORD} - DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD} - SEAFILE_MYSQL_DB_CCNET_DB_NAME=${SEAFILE_MYSQL_DB_CCNET_DB_NAME} - SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=${SEAFILE_MYSQL_DB_SEAFILE_DB_NAME} - SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME} - TIME_ZONE=${TIME_ZONE} - INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL} - INIT_SEAFILE_ADMIN_PASSWORD=${INIT_SEAFILE_ADMIN_PASSWORD} - SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME} - SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL} - SITE_ROOT=${SITE_ROOT} - NON_ROOT=false - JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY} - SEAFILE_LOG_TO_STDOUT=true depends_on: db: condition: service_healthy memcached: condition: service_started networks: - xxxx networks: xxxx: external: true |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# Seafile 设置 SEAFILE_SERVER_HOSTNAME=xxx.xxxx.com SEAFILE_SERVER_PROTOCOL=https SITE_ROOT=/ # Seafile 数据卷路径 SEAFILE_VOLUME=/home/docker/seafile/data SEAFILE_MYSQL_VOLUME=/home/docker/seafile/mysql # 管理员账号 INIT_SEAFILE_ADMIN_EMAIL=xxx@xxxx.com INIT_SEAFILE_ADMIN_PASSWORD=xxxxxxxx # 数据库设置 INIT_SEAFILE_MYSQL_ROOT_PASSWORD=xxxxxxxx SEAFILE_MYSQL_DB_PASSWORD=xxxxxxxx SEAFILE_MYSQL_DB_HOST=db SEAFILE_MYSQL_DB_PORT=3306 SEAFILE_MYSQL_DB_USER=seafile SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db # 时区 TIME_ZONE=Asia/Shanghai # JWT 密钥(可随机生成) JWT_PRIVATE_KEY='xxxxxxxx' # Seafile 镜像版本 SEAFILE_IMAGE=seafileltd/seafile-mc:12.0-latest SEAFILE_DB_IMAGE=mariadb:10.11 SEAFILE_MEMCACHED_IMAGE=memcached:1.6.29 |
THE END