《学习笔记》使用docker-compose部署springboot项目

Chtholly 发布于 2023-01-06 962 次阅读


之前部署的springboot项目是直接使用的jar包形式,因此每次本地有什么更新都要先push到仓库,然后更换生产环境打成jar包,最后部署到服务器上后重启服务,很是麻烦,因此研究了一下docker-compose部署springboot项目,这样每次更新更简单了不说,因为docker各个容器之间是隔离的,所以部署不同的项目jdk冲突时也只需要pull不同版本的jdk,十分方便。

环境准备

安装CURL

若服务器本地有curl可直接跳过此步骤

更新软件源

sudo apt-get update

安装CURL

sudo apt install curl

验证是否安装成功

curl

出现一下信息即安装成功

安装docker

使用官方的自动安装脚本

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

也可以使用国内daocloud一键安装命令

curl -sSL https://get.daocloud.io/docker | sh

安装docker-compose

使用daocloud路径快速安装

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

注意,dockers-compose是在/usr/local/bin路径下

项目部署

新建spring boot项目

注意要打成jar包

配置pom文件

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        //最后jar包的包名
        <finalName>api-server</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

配置application.yml文件

server:
  port: 8085
  tomcat:
    max-http-header-size: 3145728
  servlet:
    context-path: /api
    session:
      timeout: 2592000 # 30天

新建docker-compose.yml文件

version: "3"
x-base-server:
  &base-server
  image: maven:3-openjdk-8-slim
  ports:
    - 8085:8085
  volumes:
    - .:/app
    - ./.m2:/root/.m2
    - /etc/localtime:/etc/localtime
  working_dir: /app
  command: sh -c "mvn -DskipTests=true clean package && java -jar -server  ./target/api-server.jar"
services:
  dev:
    << : *base-server
    environment:
      TZ : "Asia/Shanghai"
如图位置

运行测试

测试成功!

上传Github仓库

上传github仓库是为了项目更新时更加方便

具体操作看贴《学习笔记》–使用git将本地项目push到github仓库 – 珂朵莉の小窝 (chthollywn.xyz)

全局配置命令

查看当前用户名和邮箱

git config user.name
git config user.email

修改当前用户名和邮箱

git config --global user.name "xxx"
git config --global user.email "xxx"

生成ssh密钥

ssh-keygen -C 'youremail' -t rsa

生成的密钥文件在/home/.ssh中,若用户为root,密钥在/root/.ssh中。

打开id_rsa.pub文件,复制所有内容到GitHub或Gitee即可注册ssh密钥

服务器部署项目

首先在/usr/local目录下新建文件夹server

cd /usr/local
mkdir server

克隆项目

git clone xxx

进入项目目录,在该目录中创建docker-compose容器

docker compose up -d

带-d标识符为后台运行

在该目录中,运行server镜像

docker compose start

因为在docker-compose.yml文件中配置了相关镜像及打包配置,因此使用start命令后会自动构建镜像,然后将项目打成jar包并运行

查看容器运行情况

docker compose ps

使用公网ip+端口号访问服务

访问成功!

重启镜像命令

docker compose restart [server-name]

停止镜像命令

docker compose stop [server-name]

删除容器命令

docker compose rm

此作者没有提供个人介绍。
最后更新于 2023-03-01