当前位置: 首页 > news >正文

Docker Compose--部署SpringBoot项目--实战

原文网址:Docker Compose--部署SpringBoot项目--实战-CSDN博客

简介

本文用实战介绍Docker Compose部署SpringBoot项目。

-----------------------------------------------------------------------------------------------
分享Java真实高频面试题,吊打面试官: Java后端真实面试题大全 - 自学精灵
分享靠谱的Java高级实战,包含:高并发、架构、全局处理等:JavaWeb高级实战 - 自学精灵
-----------------------------------------------------------------------------------------------

1.创建SpringBoot项目

Controller

package com.knife.example.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;@Slf4j
@Api(tags = "测试")
@RequestMapping("test")
@RestController
public class HelloController {@ApiOperation("测试1")@PostMapping("test1")public String test() {return "success";}
}

application.yml

spring:application:name: docker-springbootlogging:file:name: log/${spring.application.name}.loglevel:root: info

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.4.13</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.knife</groupId><artifactId>docker-springboot</artifactId><version>0.0.1-SNAPSHOT</version><name>docker-springboot</name><description>Demo project for Docker Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

2.创建Dockerfile

创建Dockerfile文件,内容如下:

# 基础镜像使用java
# 也可以用:FROM openjdk:8
FROM java:8# 作者
MAINTAINER knife <xxx@xx.com># 不是真正的发布端口,只是容器部署人员与建立image的人员之间的交流。
# 即:建立image的人员告诉容器布署人员容器应该映射哪个端口给外界
EXPOSE 8080# 指定临时文件目录,此步骤非必须。如果Java里要操作文件,就要添加这个配置
# 会在主机 /var/lib/docker 创建文件,连接到容器的/tmp。SpringBoot的内嵌Tomcat默认使用/tmp作为工作目录
VOLUME /tmp# 将jar包添加到容器中并更名为app.jar
ADD *.jar app.jar# ENTRYPOINT:docker启动时,运行的命令。这里直接运行jar服务。
ENTRYPOINT ["java","-jar","/app.jar"]

3.生成镜像

1.将SpringBoot项目打包,生成.jar文件

本处生成的是:docker-springboot-0.0.1-SNAPSHOT.jar。

打包方法:在Idea里双击绿色剪头所指的位置

2.将jar包和Dockerfile上传到服务器

注意:这两个放到同一路径之下。

3.生成镜像

在这两个文件所在的路径中执行命令:

docker build -t custom_docker-springboot:1.0 .

4.查看镜像

docker images

4.创建compose文件

docker-compose.yml

version: '3'
services:custom_docker-springboot:# 启动方式#restart: unless-stopped# 镜像image: custom_docker-springboot:1.0# 容器名字container_name: custom_docker-springboot1.0ports:- 8080:8080environment:- TZ=Asia/Shanghai

5.创建并启动容器

docker compose up -d

6.测试

启动后查看容器

docker ps

访问:ip:8080/doc.html

测试接口(可以看到:请求成功)

备注

也可以到docker内部去看看日志,会在/log下生成日志文件。 

相关文章:

Docker Compose--部署SpringBoot项目--实战

原文网址&#xff1a;Docker Compose--部署SpringBoot项目--实战-CSDN博客 简介 本文用实战介绍Docker Compose部署SpringBoot项目。 ----------------------------------------------------------------------------------------------- 分享Java真实高频面试题&#xff0c…...

单电阻FOC算法实现永磁同步电机的调整步骤和设置

本文档介绍了使用 单电阻FOC 算法实现永磁同步电机&#xff08;Permanent Magnet Synchronous Motor&#xff0c;PMSM&#xff09;调整所需的步骤和设置。由于不同电机存在参数差异&#xff0c;因此需针对不同的电机和负载对该算法进行调整。该电机库已经在在落地扇和空净等风机…...

化学DS-1040 Tosylate 抑制剂 1335138-89-0科研用途

化合物1219962-49-8是一种小分子化合物&#xff0c;分子式为C15H25N3O4&#xff0c;相对分子质量为305.37。该化合物为白色至灰白色粉末&#xff0c;不溶于水&#xff0c;易溶于有机溶剂&#xff0c;如甲醇、乙醇等。 AT791是一种与细胞周期调控相关的蛋白激酶&#xff0c;参与…...

PaddlePaddle初使用

模型导出与预测 # -c 后面设置训练算法的yml配置文件 # -o 配置可选参数 # Global.pretrained_model 参数设置待转换的训练模型地址&#xff0c;不用添加文件后缀 .pdmodel&#xff0c;.pdopt或.pdparams。 # Global.save_inference_dir参数设置转换的模型将保存的地址。pytho…...

【FPGA】分享一些FPGA数字信号处理相关的书籍

在做FPGA工程师的这些年&#xff0c;买过好多书&#xff0c;也看过好多书&#xff0c;分享一下。 后续会慢慢的补充书评。 【FPGA】分享一些FPGA入门学习的书籍【FPGA】分享一些FPGA协同MATLAB开发的书籍 【FPGA】分享一些FPGA视频图像处理相关的书籍 【FPGA】分享一些FPGA高速…...

深度解析JavaScript面试热点:事件循环、上下文、箭头函数、变量作用域与ES6模块

JavaScript面试中经常涉及到事件循环、上下文、箭头函数、变量作用域以及ES6模块等核心概念。通过清晰的代码示例&#xff0c;我们深入讨论这些主题&#xff0c;揭示其中的关键细节。 事件循环&#xff08;Event Loop&#xff09; JavaScript开发者每天都与事件循环打交道&am…...

Javaweb之Mybatis的动态SQL的详细解析

3. Mybatis动态SQL 3.1 什么是动态SQL 在页面原型中&#xff0c;列表上方的条件是动态的&#xff0c;是可以不传递的&#xff0c;也可以只传递其中的1个或者2个或者全部。 而在我们刚才编写的SQL语句中&#xff0c;我们会看到&#xff0c;我们将三个条件直接写死了。 如果页面…...

物联网与智能家居:跨境电商与未来生活的融合

物联网&#xff08;Internet of Things&#xff0c;IoT&#xff09;和智能家居技术正迅速崛起&#xff0c;成为跨境电商领域的创新引擎。这两者的巧妙结合不仅为消费者提供更智能、便捷的生活方式&#xff0c;同时也为电商平台和制造商带来了全新的商机。本文将深入探讨物联网与…...

Java内存模型(JMM)是基于多线程的吗

Java内存模型&#xff08;JMM&#xff09;是基于多线程的吗 这个问题按我的思路转换了下&#xff0c;其实就是在问&#xff1a;为什么需要Java内存模型 总结起来可以由几个角度来看待「可见性」、「有序性」和「原子性」 面试官&#xff1a;今天想跟你聊聊Java内存模型&#…...

Linux离线安装MySQL(rpm)

目录 下载安装包安装MySQL检测安装结果服务启停MySQL用户设置 下载安装包 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 下载全量包如&#xff1a;(mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar) 解压&#xff1a;tar -xzvf mysql-8.1.0-1.el7.x86_64.…...

用 Socket.D 替代原生 WebSocket 做前端开发

socket.d.js 是基于 websocket 包装的 socket.d 协议的实现。就是用 ws 传输数据&#xff0c;但功能更强大。 功能原生 websocketsocket.d说明listen有有监听消息send有有发消息sendAndRequest无有发消息并接收一个响应&#xff08;类似于 http&#xff09;sendAndSubscribe无…...

Transformer架构和对照代码详解

1、英文架构图 下面图中展示了Transformer的英文架构&#xff0c;英文架构中的模块名称和具体代码一一对应&#xff0c;方便大家对照代码、理解和使用。 2、编码器 2.1 编码器介绍 从宏观⻆度来看&#xff0c;Transformer的编码器是由多个相同的层叠加⽽ 成的&#xff0c;每个…...

大数的乘法

题目描述 求两个不超过100位的非负整数的乘积。 输入 有两行&#xff0c;每行是一个不超过100位的非负整数&#xff0c;没有多余的前导0。 输出 一行&#xff0c;相乘后的结果。 样例输入 Copy 123456789 123456789样例输出 Copy 15241578750190521 代码实现&#xff1…...

年度征文 | 机器学习之心的2023

机器学习之心的2023 2023是极其复杂的一年。 生活上&#xff0c;养了很多宠物。 工作上&#xff0c;写了不少博客。 虽然遇见更多让人不开心的事情&#xff0c;但总体还是美好的。 愿大家新的一年健康平安&#xff0c;生活幸福&#xff01; 机器学习是一项庞大的工程&#xff0…...

13.Kubernetes应用部署完整流程:从Dockerfile到Ingress发布完整流程

本文以一个简单的Go应用Demo来演示Kubernetes应用部署的完整流程 1、Dockerfile多阶段构建 Dockerfile多阶段构建 [root@docker github]# git clone https://gitee.com/yxydde/http-dump.git [root@docker github]# cd http-dump/ [root@docker http-dump]# cat Dockerfile …...

多年后再用TB,谈项目管理工具

背景 最近启动一个小项目&#xff0c;多年未曾使用项目管理工具&#xff0c;依稀记得使用过Basecamp,Tower,worktitle,teambition等等&#xff0c;当然还有mantis&#xff0c;vs project等等。于是随便翻阅找个用&#xff0c;不小心翻了TB的牌子&#xff0c;竟然已是阿里旗下的…...

Spark MLlib ----- ALS算法

补充 在谈ALS(Alternating Least Squares)之前首先来谈谈LS,即最小二乘法。LS算法是ALS的基础,是一种数优化技术,也是一种常用的机器学习算法,他通过最小化误差平方和寻找数据的最佳匹配,利用最小二乘法寻找最优的未知数据,保证求的数据与已知的数据误差最小。LS也被用…...

ubuntu桥接方式上网

vmvare:VMware Workstation 17 Pro ubuntu: Ubuntu 14.04.6 LTS window10 下面是我的电脑配置 下面是ubuntu虚拟机的配置 vi /etc/network/interfaces 下面的gateway就是window -ipconfig 截图里的默认网关 auto lo iface lo inet loopbackauto eth0 iface eth0 inet stat…...

收到的字符串写入xml并且将这个xml写入.zip文件中

文章目录 1、将数据写入xml文件WriteToXmlFile2、将xml文件写入zip压缩文件AddToZip3、组合起来4、使用到的头文件和动态库 1、将数据写入xml文件WriteToXmlFile void CSMSLoginDlg::WriteToXmlFile(const std::string& responseData, const std::string& xmlFileName…...

【读书笔记】《白帽子讲web安全》跨站脚本攻击

目录 前言&#xff1a; 第二篇 客户端脚本安全 第3章 跨站脚本攻击&#xff08;XSS&#xff09; 3.1XSS简介 3.2XSS攻击进阶 3.2.1初探XSS Payload 3.2.2强大的XSS Payload 3.2.2.1 构造GET与POST请求 3.2.2.2XSS钓鱼 3.2.2.3识别用户浏览器 3.2.2.4识别用户安装的软…...

第九节 初始化项目

系列文章目录 目录 系列文章目录 前言 操作方法 总结 前言 初始化项目,导入默认reset.scss 、variables.scss及mixins.scss等并修改main.js引入样式 操作方法 将默认样式表文件导入到项目。样式文件已经放到资源里请自行下载(...

【论文阅读】深度学习中的后门攻击综述

深度学习中的后门攻击综述 1.深度学习模型三种攻击范式1.1.对抗样本攻击1.2.数据投毒攻击1.3.后门攻击 2.后门攻击特点3.常用术语和标记4.常用评估指标5.攻击设置5.1.触发器5.1.1.触发器属性5.1.2.触发器类型5.1.3.攻击类型 5.2.目标类别5.3.训练方式 1.深度学习模型三种攻击范…...

Spring Boot中加@Async和不加@Async有什么区别?设置核心线程数、设置最大线程数、设置队列容量是什么意思?

在 Spring 中&#xff0c;Async 注解用于将方法标记为异步执行的方法。当使用 Async 注解时&#xff0c;该方法将在单独的线程中执行&#xff0c;而不会阻塞当前线程。这使得方法可以在后台执行&#xff0c;而不会影响主线程的执行。 在您提供的代码示例中&#xff0c;a1() 和…...

Vue_00001_CLI

初始化脚手架 初始化脚手架步骤&#xff1a; 第一步&#xff08;仅第一次执行&#xff09;&#xff1a;全局安装vue/cli。 命令&#xff1a;npm install -g vue/cli 第二步&#xff1a;切换到要创建项目的目录&#xff0c;然后使用命令创建项目。 命令&#xff1a;vue creat…...

kubernetes ResourceQuotas Limits(资源配额)

开头语 写在前面&#xff1a;如有问题&#xff0c;以你为准&#xff0c; 目前24年应届生&#xff0c;各位大佬轻喷&#xff0c;部分资料与图片来自网络 内容较长&#xff0c;页面右上角目录方便跳转 简介 当多个用户或团队共享具有固定节点数目的集群时&#xff0c;人们会…...

【ARMv8架构系统安装PySide2】

ARMv8架构系统安装PySide2 Step1. 下载Qt资源包Step2. 配置和安装Qt5Step3. 检查Qt-5.15.2安装情况Step4. 安装PySide2所需的依赖库Step5. 下载和配置PySide2Step6. 检验PySide2是否安装成功 Step1. 下载Qt资源包 if you need the whole Qt5 (~900MB): wget http://master.qt…...

ECMAScript6详解

ECMAScript 6&#xff0c;也被称为 ES6 或 ECMAScript 2015&#xff0c;是 JavaScript 编程语言标准的一个主要更新。它于 2015 年正式发布&#xff0c;并带来了许多新特性和改进&#xff0c;使得 JavaScript 开发更加现代化和高效。下面是 ES6 的一些关键特性的详解&#xff1…...

[C#]使用PaddleInference图片旋转四种角度检测

官方框架地址】 https://github.com/PaddlePaddle/PaddleDetection.git 【算法介绍】 PaddleDetection 是一个基于 PaddlePaddle&#xff08;飞桨&#xff09;深度学习框架的开源目标检测工具库。它提供了一系列先进的目标检测算法&#xff0c;包括但不限于 Faster R-CNN, Ma…...

stable diffusion 基础教程-提示词之光的用法

基图 prompt: masterpiece,best quality,1girl,solo,looking at viewer,brown hair,hair between eyes,bangs,very long hair,red eyes,blush,bare shoulders,(white sundress),full body,Negative prompt: EasyNegative,badhandv4,nsfw,lowres,bad anatomy,bad hands,text…...

第9课 回声抑制(AEC+AGC+ANS)的实现

在第8课中&#xff0c;我们将推流端与播放端合并实现了一对一音视频聊天功能&#xff0c;一切看起来还不错。但在实际使用时&#xff0c;会遇到一个烦心的问题&#xff1a;说话时会听到比较大的回声&#xff0c;影响正常使用。所以&#xff0c;这节课我们来重点解决这个问题。 …...

人才网网站开发手册/如何制作自己的网址

微软小娜&#xff08;Cortana&#xff09; ios版 第一部分&#xff1a;测评 1、首次体验 界面内容很多&#xff0c;地图 新闻 美食 电影 天气等 连车辆限号都有&#xff0c;感觉很强大。视觉上感觉很舒适&#xff0c;背景颜色也有多种颜色可供选择。功能也很多&#xff0c;提醒…...

设计公司网站官网/一键优化大师

千呼万唤始出来&#xff0c;Eclipse总算出3.0版了...

北海做网站网站建设/品牌推广的意义

文章内容&#xff1a; 以前调试经常是用alert语句输出这个变量的值。 有了谷歌游览器&#xff0c;就可以这样做&#xff1a; 利用终端打印变量。 consloe 也可以在代码中加入&#xff1a;consloe.log(var) 在代码上添加 debugger来设置断点。 其他有助于js开发的用法&#xff1…...

广州网站建设优化公司哪家好/网络营销的公司有哪些

package test1; /*** 该例子演示生产者和消费者的问题&#xff08;设只有一个缓存空间、一个消费者和一个生产者&#xff09;* MySystem类定义了缓冲区个数以及信号量* author HYY*/ public class MySystem {// 缓存区的个数private int count 0;// s1 s2为信号量private MyIn…...

做网站的一般都包维护吗/站长之家官网

超星尔雅《数据库应用基础(MySQL)》章节答案社会意识形态最基本的一个功能是()。答&#xff1a;对社会存在的认识关于受精下列哪项描述是正确的是:答&#xff1a;精子和卵子的结合过程称受精四种气质类型&#xff1a; A、抑郁质 B、多血质 C、粘液质 D、胆汁质答&#xff1a;多…...

上海建设网站公司/软文广告营销

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…...