中铁广州建设有限公司网站成都网站建设网站建设哪家好
中铁广州建设有限公司网站,成都网站建设网站建设哪家好,网页设计样图,怎么为自己公司做网站1. 为什么选择Docker部署JeecgBoot#xff1f;
如果你正在寻找一个快速搭建企业级应用的方法#xff0c;JeecgBoot绝对是个不错的选择。作为国内知名的低代码开发平台#xff0c;它能让开发效率提升70%以上。但传统的部署方式往往需要折腾各种环境依赖#xff0c;这时候Doc…1. 为什么选择Docker部署JeecgBoot如果你正在寻找一个快速搭建企业级应用的方法JeecgBoot绝对是个不错的选择。作为国内知名的低代码开发平台它能让开发效率提升70%以上。但传统的部署方式往往需要折腾各种环境依赖这时候Docker的优势就体现出来了。我去年接手一个紧急项目时就用Docker在半小时内完成了从零部署到上线。相比传统方式节省了至少一天的环境配置时间关键是整个过程可重复、可移植。想象一下当你把整个系统打包成容器在任何服务器上都能一键启动这种体验有多爽。Docker化部署主要带来三个核心优势环境一致性再也不用说在我机器上是好的这种话快速部署从源码到服务只需几条命令资源隔离每个服务独立运行互不干扰2. 环境准备打好基础很重要2.1 安装Docker全家桶工欲善其事必先利其器。首先确保你的系统已经安装Docker和docker-compose。以Ubuntu为例# 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release # 添加Docker官方GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置稳定版仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 验证安装 sudo docker run hello-world如果看到Hello from Docker!的提示说明安装成功。建议将当前用户加入docker组避免每次都要sudosudo usermod -aG docker $USER newgrp docker # 立即生效2.2 准备编译环境JeecgBoot需要Java和Node.js环境进行前后端编译。虽然Docker化后这些工具不再需要安装在宿主机但编译阶段还是需要的# 安装JDK 17JeecgBoot推荐版本 sudo apt install openjdk-17-jdk # 安装Maven wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz tar -xzf apache-maven-3.9.9-bin.tar.gz sudo mv apache-maven-3.9.9 /opt/maven # 配置环境变量 echo export MAVEN_HOME/opt/maven export PATH$PATH:$MAVEN_HOME/bin | sudo tee /etc/profile.d/maven.sh source /etc/profile.d/maven.sh # 安装Node.js 18 curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs # 验证安装 java -version mvn -v node -v3. 获取和配置JeecgBoot源码3.1 克隆项目仓库官方推荐从Gitee克隆代码速度更快git clone https://gitee.com/jeecg/jeecg-boot.git cd jeecg-boot如果遇到网络问题可以尝试加上深度克隆参数git clone --depth1 https://gitee.com/jeecg/jeecg-boot.git3.2 修改后端配置进入项目后首要任务是配置数据库连接。找到开发环境配置文件vim jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml关键配置项修改示例spring: datasource: url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?useUnicodetruecharacterEncodingUTF-8serverTimezoneAsia/Shanghai username: root password: 123456 redis: host: jeecg-boot-redis port: 6379注意这里使用了服务名而非IP这是为了后续Docker容器间通信做准备。3.3 修改前端配置前端项目需要配置API基础地址vim jeecgboot-vue3/.env.production修改为VITE_GLOB_DOMAIN_URLhttp://localhost:8080/jeecg-boot VITE_GLOB_API_URL/jeecg-boot4. 编译打包从源码到可运行程序4.1 后端Java项目编译使用Maven进行编译打包mvn clean install -DskipTests第一次编译可能会比较久因为要下载所有依赖。我建议喝杯咖啡等待大型项目可能需要10-15分钟。如果遇到依赖下载失败可以尝试mvn clean install -DskipTests -U编译成功后会在各模块target目录生成jar包主要需要的是jeecg-module-system/jeecg-system-start/target/jeecg-system-start-3.5.0.jar4.2 前端Vue项目编译前端项目使用pnpm管理依赖先安装依赖cd jeecgboot-vue3 npm install -g pnpm pnpm install编译生产环境代码pnpm run build编译完成后所有静态资源会生成在dist目录。5. Docker化部署实战5.1 编写Docker Compose文件在项目根目录创建docker-compose.ymlversion: 3.8 services: jeecg-boot-mysql: image: mysql:8.0 container_name: jeecg-boot-mysql environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: jeecg-boot TZ: Asia/Shanghai volumes: - mysql_data:/var/lib/mysql command: --default-authentication-pluginmysql_native_password --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci ports: - 3306:3306 networks: - jeecg-net jeecg-boot-redis: image: redis:6 container_name: jeecg-boot-redis ports: - 6379:6379 networks: - jeecg-net jeecg-boot-backend: build: context: . dockerfile: Dockerfile.backend container_name: jeecg-boot-backend depends_on: - jeecg-boot-mysql - jeecg-boot-redis ports: - 8080:8080 networks: - jeecg-net jeecg-boot-frontend: build: context: . dockerfile: Dockerfile.frontend container_name: jeecg-boot-frontend ports: - 80:80 networks: - jeecg-net volumes: mysql_data: networks: jeecg-net: driver: bridge5.2 编写Dockerfile创建后端DockerfileDockerfile.backendFROM openjdk:17-jdk WORKDIR /app COPY jeecg-module-system/jeecg-system-start/target/jeecg-system-start-*.jar app.jar EXPOSE 8080 ENTRYPOINT [java,-jar,app.jar]创建前端DockerfileDockerfile.frontendFROM nginx:alpine WORKDIR /usr/share/nginx/html COPY jeecgboot-vue3/dist . COPY jeecgboot-vue3/nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 805.3 启动所有服务一键启动所有容器docker-compose up -d可以通过以下命令查看日志docker-compose logs -f6. 验证与使用6.1 检查服务状态确保所有容器正常运行docker ps应该看到4个容器MySQL、Redis、后端服务和前端服务。6.2 访问系统打开浏览器访问前端地址http://localhost后端Swagger文档http://localhost:8080/jeecg-boot/doc.html默认管理员账号用户名admin密码1234566.3 常见问题解决数据库连接失败 检查MySQL容器日志docker logs jeecg-boot-mysql确保数据库初始化完成后再启动后端服务。前端访问空白页 可能是Nginx配置问题检查docker exec -it jeecg-boot-frontend nginx -t内存不足 如果服务器资源有限可以在docker-compose.yml中添加资源限制jeecg-boot-backend: deploy: resources: limits: cpus: 1 memory: 1G7. 生产环境优化建议7.1 使用阿里云镜像加速修改docker-compose.yml使用国内镜像jeecg-boot-mysql: image: registry.cn-hangzhou.aliyuncs.com/library/mysql:8.07.2 配置数据持久化确保重要数据不会因容器重启而丢失volumes: mysql_data: driver: local redis_data: driver: local7.3 启用HTTPS使用Lets Encrypt免费证书docker run -it --rm --name certbot \ -v /etc/letsencrypt:/etc/letsencrypt \ -v /var/lib/letsencrypt:/var/lib/letsencrypt \ certbot/certbot certonly --standalone -d yourdomain.com7.4 监控与日志配置ELK收集日志elk: image: sebp/elk ports: - 5601:5601 - 9200:9200 - 5044:5044 volumes: - elk-data:/var/lib/elasticsearch8. 进阶微服务模式部署JeecgBoot也支持微服务架构只需调整docker-compose.ymlnacos: image: nacos/nacos-server environment: - MODEstandalone ports: - 8848:8848然后修改应用配置连接到Nacos即可。这种架构更适合大型分布式系统但维护成本也会相应增加。