首页
/ Walle-Web项目基于Docker Compose的部署指南

Walle-Web项目基于Docker Compose的部署指南

2025-07-06 04:25:34作者:温艾琴Wonderful

项目概述

Walle-Web是一个开源的Web部署系统,通过Docker Compose可以快速搭建完整的运行环境。本文将详细解析其docker-compose.yml文件配置,帮助开发者理解和使用这套部署方案。

环境要求

在部署前,请确保满足以下基础环境要求:

  • Docker版本不低于18.06.0
  • Docker Compose版本不低于1.23.2
  • OpenSSL版本不低于1.1.0h

服务架构解析

Walle-Web的Docker Compose配置定义了三个核心服务:

1. Web服务(Nginx)

web:
  image: alenx/walle-web:2.1
  container_name: walle-nginx
  hostname: nginx-web
  ports:
    - "80:80"
  depends_on:
    - python
  networks:
    - walle-net
  restart: always

该服务基于Nginx构建,主要功能是:

  • 作为前端Web服务器,监听80端口
  • 通过Docker网络与Python后端服务通信
  • 自动重启策略确保服务高可用

2. Python应用服务

python:
  image: alenx/walle-python:2.1
  container_name: walle-python
  hostname: walle-python
  env_file:
    - ./walle.env
  volumes:
    - /tmp/walle/codebase/:/tmp/walle/codebase/
    - /tmp/walle/logs/:/opt/walle-web/logs/
    - /root/.ssh:/root/.ssh/
  command: bash -c "cd /opt/walle_home/ && /bin/bash admin.sh migration && python waller.py"
  expose:
    - "5000"
  depends_on:
    - db
  networks:
    - walle-net
  restart: always

Python服务是Walle-Web的核心业务逻辑实现,关键配置包括:

  • 使用walle.env环境变量文件
  • 挂载了代码库、日志和SSH目录
  • 启动时自动执行数据库迁移
  • 暴露5000端口供Nginx反向代理
  • 依赖MySQL数据库服务

3. MySQL数据库服务

db:
  image: mysql
  container_name: walle-mysql
  hostname: walle-mysql
  env_file:
    - ./walle.env
  command: [ '--default-authentication-plugin=mysql_native_password', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
  ports:
    - "3306:3306"
  expose:
    - "3306"
  volumes:
    - /data/walle/mysql:/var/lib/mysql
  networks:
    - walle-net
  restart: always

数据库服务配置要点:

  • 使用官方MySQL镜像
  • 支持原生密码认证
  • 配置UTF8MB4字符集支持完整Unicode
  • 数据持久化到宿主机/data/walle/mysql目录
  • 暴露3306端口便于管理

网络配置

networks:
  walle-net:
    driver: bridge

所有服务通过自定义的walle-net桥接网络互联,确保容器间通信安全隔离。

部署实践指南

  1. 准备工作

    • 创建walle.env环境变量文件,包含数据库连接等配置
    • 确保宿主机目录权限正确(/tmp/walle/, /data/walle/mysql)
  2. 启动服务

    docker-compose up -d
    
  3. 验证服务

    • 检查各容器状态:docker ps
    • 查看日志:docker logs walle-nginx
    • 访问http://宿主机IP验证Web界面
  4. 日常维护

    • 更新时只需拉取新镜像并重启服务
    • 数据库备份可通过宿主机/data/walle/mysql目录实现

常见问题解决

  1. 端口冲突

    • 修改docker-compose.yml中ports映射,如"8080:80"
  2. 数据库初始化失败

    • 检查walle.env中的数据库配置
    • 确保/data/walle/mysql目录可写
  3. SSH相关问题

    • 确认宿主机/root/.ssh目录存在且包含必要密钥

最佳实践建议

  1. 生产环境建议:

    • 使用TLS加密Web流量
    • 配置数据库定期备份
    • 设置资源限制(CPU/内存)
  2. 性能优化:

    • 根据负载调整Nginx worker数量
    • 配置MySQL缓存参数

通过这套Docker Compose配置,开发者可以快速搭建完整的Walle-Web环境,实现代码部署的自动化管理。配置中的各项参数可根据实际需求灵活调整,满足不同场景下的部署需求。