基于Docker的若依管理系统快速部署指南 前言 在当今软件开发领域,前后端分离架构已成为主流,它使得前端和后端团队可以独立开发和部署,极大地提升了开发效率和灵活性。然而,随着项目复杂度的增加,如何高效地部署和管理这种架构成为了一个挑战。Docker作为一种轻量级的容器化技术,为前后端分离项目的部署提供了强大的支持。本文将详细介绍如何使用Docker快速部署若依管理系统,帮助读者实现一键式部署,提升项目上线的速度和稳定性。 一、准备工作 1.1 安装Docker首先,确保你的服务器已安装Docker。以下是CentOS系统的安装步骤: sudo yum update -y sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker sudo docker --version 1.2 安装Docker ComposeDocker Compose可以帮助我们定义和运行多容器Docker应用。安装步骤如下: sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo docker-compose --version 二、构建若依后端服务 2.1 创建项目目录在服务器上创建一个专门用于部署若依项目的目录: mkdir -p /opt/ruoyi cd /opt/ruoyi 2.2 编写Dockerfile在项目目录下创建一个Dockerfile文件,用于构建若依后端服务的镜像: FROM java:8-jdk VOLUME /tmp ADD ruoyi-admin.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 2.3 准备后端JAR包将若依后端项目的JAR包(如ruoyi-admin.jar)上传到/opt/ruoyi目录下。 2.4 构建镜像执行以下命令构建Docker镜像: docker build -t ruoyi-admin . 三、配置数据库和缓存 3.1 安装Redis创建Redis配置文件和挂载目录: mkdir -p /opt/ruoyi/redis/data echo "requirepass yourpassword" > /opt/ruoyi/redis/redis.conf编写docker-compose.yml文件,添加Redis服务: version: '3' services: redis: image: redis:5.0.10 container_name: redis volumes: - /opt/ruoyi/redis/data:/data - /opt/ruoyi/redis/redis.conf:/etc/redis/redis.conf ports: - "6379:6379" command: ["redis-server", "/etc/redis/redis.conf"] 3.2 安装MySQL创建MySQL配置文件和挂载目录: mkdir -p /opt/ruoyi/mysql/data mkdir -p /opt/ruoyi/mysql/conf echo "[mysqld]\ncharacter-set-server=utf8mb4\ncollation-server=utf8mb4_general_ci" > /opt/ruoyi/mysql/conf/my.cnf更新docker-compose.yml文件,添加MySQL服务: version: '3' services: redis: image: redis:5.0.10 container_name: redis volumes: - /opt/ruoyi/redis/data:/data - /opt/ruoyi/redis/redis.conf:/etc/redis/redis.conf ports: - "6379:6379" command: ["redis-server", "/etc/redis/redis.conf"] mysql: image: mysql:5.7.35 container_name: mysql environment: MYSQL_ROOT_PASSWORD: yourpassword MYSQL_DATABASE: ruoyi volumes: - /opt/ruoyi/mysql/data:/var/lib/mysql - /opt/ruoyi/mysql/conf/my.cnf:/etc/mysql/my.cnf ports: - "3306:3306" 四、部署若依后端服务 4.1 更新docker-compose.yml将若依后端服务添加到docker-compose.yml文件中: version: '3' services: redis: image: redis:5.0.10 container_name: redis volumes: - /opt/ruoyi/redis/data:/data - /opt/ruoyi/redis/redis.conf:/etc/redis/redis.conf ports: - "6379:6379" command: ["redis-server", "/etc/redis/redis.conf"] mysql: image: mysql:5.7.35 container_name: mysql environment: MYSQL_ROOT_PASSWORD: yourpassword MYSQL_DATABASE: ruoyi volumes: - /opt/ruoyi/mysql/data:/var/lib/mysql - /opt/ruoyi/mysql/conf/my.cnf:/etc/mysql/my.cnf ports: - "3306:3306" ruoyi-admin: image: ruoyi-admin container_name: ruoyi-admin depends_on: - mysql - redis ports: - "8080:8080" 4.2 启动服务执行以下命令启动所有服务: docker-compose up -d 4.3 导入数据库初始化数据将若依项目的数据库初始化脚本(如ruoyi.sql)导入到MySQL数据库中: docker exec -i mysql mysql -uroot -pyourpassword ruoyi < ruoyi.sql 五、部署若依前端服务 5.1 创建前端目录在项目目录下创建前端目录并上传前端文件: mkdir -p /opt/ruoyi/front cd /opt/ruoyi/front # 上传前端文件 5.2 编写前端Dockerfile在/opt/ruoyi/front目录下创建Dockerfile文件: FROM nginx:1.21.3 COPY ./dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] 5.3 构建前端镜像执行以下命令构建前端镜像: docker build -t ruoyi-front . 5.4 更新docker-compose.yml将前端服务添加到docker-compose.yml文件中: version: '3' services: redis: image: redis:5.0.10 container_name: redis volumes: - /opt/ruoyi/redis/data:/data - /opt/ruoyi/redis/redis.conf:/etc/redis/redis.conf ports: - "6379:6379" command: ["redis-server", "/etc/redis/redis.conf"] mysql: image: mysql:5.7.35 container_name: mysql environment: MYSQL_ROOT_PASSWORD: yourpassword MYSQL_DATABASE: ruoyi volumes: - /opt/ruoyi/mysql/data:/var/lib/mysql - /opt/ruoyi/mysql/conf/my.cnf:/etc/mysql/my.cnf ports: - "3306:3306" ruoyi-admin: image: ruoyi-admin container_name: ruoyi-admin depends_on: - mysql - redis ports: - "8080:8080" ruoyi-front: image: ruoyi-front container_name: ruoyi-front ports: - "80:80" 5.5 启动所有服务执行以下命令启动所有服务: docker-compose up -d 六、验证部署通过浏览器访问,如果能够正常显示若依前端页面,并且后端接口也能正常访问,说明部署成功。 七、常见问题及解决方案 7.1 Docker服务启动失败检查Docker服务状态,确保Docker已正确安装并启动: sudo systemctl status docker 7.2 数据库连接失败确保MySQL容器已正确启动,并且数据库初始化脚本已成功导入。检查数据库配置是否正确。 7.3 前端页面加载失败检查Nginx配置是否正确,确保前端静态文件已正确复制到容器中。 八、总结通过本文的详细指导,相信你已经掌握了如何使用Docker快速部署若依管理系统。Docker的容器化技术不仅简化了部署流程,还提高了项目的可移植性和稳定性。希望这篇文章能帮助你在实际项目中事半功倍,进一步提升开发效率。 如果你有任何问题或建议,欢迎在评论区留言交流! (责任编辑:) |