springboot项目部署在linux上运行的两种方式小结

下面是“springboot项目部署在linux上运行的两种方式小结”的攻略。

概述

Spring Boot作为一种轻量级Java Web框架,在实际开发中得到了广泛的应用。为了让应用更好的运行和扩展,需要将其部署到生产环境中,而Linux作为生产环境的首选,本文将介绍Spring Boot项目部署在Linux上运行的两种方式:使用脚本方式运行和使用Docker容器运行。

使用脚本方式运行

使用脚本方式运行,我们需要编写一个bash脚本来完成项目的启动和停止等操作。以下是示例脚本:

#!/bin/sh
APP_NAME=myapp.jar
LOG_DIR=/logs
APP_HOME=/app

start() {
    nohup java -jar $APP_HOME/$APP_NAME > $LOG_DIR/app.log 2>&1 &
}

stop() {
    ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}' | xargs kill -9
}

case $1 in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0

以上脚本的主要功能是启动和停止项目,将项目作为后台进程启动,并将输出日志重定向到指定目录中。脚本中的几个关键变量需要根据实际情况进行修改:$APP_NAME代表Spring Boot打包后的jar包名称,$LOG_DIR为日志输出目录,$APP_HOME为项目存放目录。

使用Docker容器运行

使用Docker容器运行,我们需要先编写一个Dockerfile,用于构建我们的Docker镜像。以下是示例Dockerfile:

FROM java:8-alpine
ENV APP_NAME myapp.jar
ENV LOG_DIR /logs
ENV APP_HOME /app
COPY $APP_NAME $APP_HOME/
WORKDIR $APP_HOME
ENTRYPOINT ["java", "-jar", "$APP_NAME"]

以上Dockerfile基于Alpine Linux构建了Java 8的运行环境,定义了一些环境变量和复制项目文件到镜像中。ENTRYPOINT定义的命令指定了当容器启动时要执行的命令。

接着,我们可以使用以下命令来构建Docker镜像和运行容器:

docker build -t myapp .
docker run -d -p 8080:8080 -v /logs:/logs myapp

以上命令将我们构建好的镜像运行在一个后台容器中,并通过-p参数将容器内的8080端口映射到主机的8080端口上,-v参数将主机的/logs目录与容器内的/logs目录进行挂载,使得容器内的日志可以输出到主机的日志目录中。

总结

本文介绍了Spring Boot项目部署在Linux上运行的两种方式,通过使用脚本方式运行和使用Docker容器运行,可以让我们更方便地管理和运维我们的项目,提高开发和维护效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot项目部署在linux上运行的两种方式小结 - Python技术站

(1)
上一篇 2023年5月30日
下一篇 2023年5月24日

相关文章

  • linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法

    这里是“linux执行sh脚本报错:$’\r’: 未找到命令的完美解决方法”的完整攻略。 问题描述 当我们在 Linux 系统执行一个 sh 脚本时,可能会遇到如下错误: bash: ./test.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录 或者出现如下错误: -bash: ./test.sh: /bin/bash: ^M: bad …

    Linux 2023年5月14日
    00
  • prometheus-添加监控linux服务器

    1. prometheus-添加监控linux服务器 prometheus添加监控linux服务器 node_exporter:用于监控Linux系统的指标采集器。 常用指标: CPU 内存 硬盘 网络流量 文件描述符 系统负载 系统服务 数据接口:http://IP:9100 使用文档:https://prometheus.io/docs/guides/n…

    Linux 2023年4月11日
    00
  • Kali Linux安装VMware tools安装过程及VM安装vmtools按钮灰色

    安装VMware tools是为了提升虚拟机性能和功能的关键步骤之一,下面是在Kali Linux虚拟机中安装VMware tools的完整攻略,以及解决VM安装vmtools按钮灰色的问题。 1. 安装VMware tools步骤 第一步:挂载VMware tools镜像 在VMware Workstation中,选中Kali Linux虚拟机,点击VM …

    Linux 2023年5月24日
    00
  • Python脚本判断 Linux 是否运行在虚拟机上

    要判断 Linux 是否运行在虚拟机上,我们可以使用 Python 编写脚本,具体步骤如下: 步骤一:导入必要的 Python 库 Python 作为一门高级编程语言,有很多非常实用的库可供选择,我们可以使用如下代码导入必要的 Python 库: import os # 导入操作系统相关的库 import re # 导入正则表达式相关的库 步骤二:获取 Li…

    Linux 2023年5月24日
    00
  • 在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法

    以下是在CentOS7上搭建Jenkins+Maven+Git持续集成环境的方法的完整攻略。该攻略分为以下几个步骤: 安装JDK 安装Maven 安装Git 安装Jenkins 配置Jenkins 示例说明 1. 安装JDK 首先需要安装JDK。可以通过以下命令安装: sudo yum install java-devel 安装完成之后,可以通过以下命令验证…

    Linux 2023年5月14日
    00
  • Keepalived虚拟ip linux下如何设置vip(虚拟ip)

    在做HA的时候需要为服务器设计虚拟IP,也就是一个主机对应多个IP地址?刚听起来好神奇,原来这样也是可能的看了下面的这个链接 自己配了一下http://hi.baidu.com/pbottle/item/7175d29702a0a0bd83d29533 在eth0处引用别名,设置完子网掩码即可ifconfig eth0:0 166.111.69.100 ne…

    Linux 2023年4月11日
    00
  • 详解Ubuntu20.04用Xshell通过SSH连接报错的服务问题

    下面是详解Ubuntu20.04用Xshell通过SSH连接报错的服务问题的完整攻略。 问题描述 当使用Xshell通过SSH连接Ubuntu20.04时,可能会出现如下报错: ssh_exchange_identification: read: Connection reset by peer 这是因为SSH服务端未启动或者被禁用所导致的。 解决方法 方法…

    Linux 2023年5月14日
    00
  • linux下查看所有用户及所有用户组

    groups 查看当前登录用户的组内成员groups gliethttp 查看gliethttp用户所在的组,以及组内成员whoami 查看当前登录用户名 /etc/group文件包含所有组/etc/shadow和/etc/passwd系统存在的所有用户名 1、/etc/group 解说;/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并…

    Linux 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部