基于 Docker 和 Docker Compose 的 Spring Boot Web 项目部署方案

95 阅读2分钟

需求概述

我本地有一个springboot开发的web项目,涉及到到mysql,redis等环境,有一台centos系统的云服务器裸机,我想通过docker来部署,该如何来实现

部署Spring Boot应用程序的基本步骤

  1. 安装 Docker 和 Docker Compose 首先需要在云服务器上安装 Docker 和 Docker Compose,这可以通过运行以下命令完成:

    $ sudo yum install docker 
    $ sudo systemctl start docker 
    $ sudo systemctl enable 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
    
  2. 创建 Dockerfile 在项目根目录下创建一个名为 Dockerfile 的文件,并添加以下内容:

    FROM openjdk:11 
    VOLUME /tmp 
    ADD target/myproject-0.0.1-SNAPSHOT.jar myproject.jar 
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/myproject.jar"]
    

    这个文件定义了一个基于 OpenJDK 11 的 Docker 镜像,将 Spring Boot 应用程序打包成一个可执行的 JAR 文件,并在容器启动时运行。

  3. 构建 Docker 镜像 在项目根目录下运行以下命令构建 Docker 镜像:

    $ sudo docker build -t myproject:latest .
    
  4. 创建 Docker Compose 文件 在项目根目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容:

    version: '3'
    services:
      myproject:
        image: myproject:latest
        container_name: myproject
        ports:
          - "8080:8080"
        environment:
          SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/mydb?useSSL=false
          SPRING_DATASOURCE_USERNAME: myuser
          SPRING_DATASOURCE_PASSWORD: mypassword
          SPRING_REDIS_HOST: redis
          SPRING_REDIS_PORT: 6379
        depends_on:
          - mysql
          - redis
      mysql:
        image: mysql:5.7
        container_name: mysql
        environment:
          MYSQL_ROOT_PASSWORD: rootpassword
          MYSQL_DATABASE: mydb
          MYSQL_USER: myuser
          MYSQL_PASSWORD: mypassword
        ports:
          - "3306:3306"
      redis:
        image: redis:5
        container_name: redis
        ports:
          - "6379:6379"
    

    这个文件定义了一个 Docker Compose 应用程序,其中包含三个服务:myproject、mysql 和 redis。myproject 服务使用先前构建的 Docker 镜像运行 Spring Boot 应用程序,并连接到 mysql 和 redis 数据库。

  5. 启动 Docker Compose 应用程序
    在项目根目录下运行以下命令启动 Docker Compose 应用程序:

    $ sudo docker-compose up -d
    

    这个命令将启动 Docker Compose 应用程序,并在后台运行。

  6. 测试应用程序
    最后,在浏览器中输入服务器的公共 IP 地址和应用程序的端口号(默认为8080),并在 URL 中添加 /health 或 /actuator/health 路径来测试应用程序的运行状况。如果应用程序正在运行,则应该收到 HTTP 200 OK 响应。

以上是基本的部署流程,当然在实际应用中可能还需要进行更多的配置和优化,具体可以根据需要进行调整。