docker实战学习2022版本(六)之Dockerfile整合微服务实战

news2024/9/20 22:27:24

需求:通过idea新建一个普通微服务模块;然后通过Dockerfile发布微服务部署到docker容器

step1:新建一个springboot项目,添加依赖

 <dependencies>
        <!--SpringBoot通用依赖模块-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

step2:编写controller逻辑

package com.ansheng.docker_boot.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.UUID;

@RestController
public class OrderController {
    @Value("${server.port}")
    private String port;

    @RequestMapping("/order/docker")
    public String helloDocker()
    {
        return "hello docker"+"\t"+port+"\t"+ UUID.randomUUID().toString();
    }


    @RequestMapping(value ="/order/index",method = RequestMethod.GET)
    public String index()
    {
        return "服务端口号: "+"\t"+port+"\t"+UUID.randomUUID().toString();
    }
}

 ​​​​​​​源代码已上传码云:https://gitee.com/vancl/docker_bootx.git

step3:本地启动服务验证程序可行性

 

 step4:将本项目通过maven packge打包

  step5:将打成的jar包上传到阿里云服务器mydocker文件夹中

   step6:在jar包统一文件夹下编写Dockerfile

# 基础镜像使用java

FROM java:8

# 作者

MAINTAINER hanansheng

# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp

VOLUME /tmp

# 将jar包添加到容器中并更名为hanansheng_docker.jar

ADD docker_boot-0.0.1-SNAPSHOT.jar hanansheng_docker.jar

# 运行jar包

RUN bash -c 'touch /hanansheng_docker.jar'

ENTRYPOINT ["java","-jar","/hanansheng_docker.jar"]

#暴露6001端口作为微服务

EXPOSE 6001

   step7:构建镜像

docker build -t hanansheng_docker:1.6 .

    step8:运行容器

docker run -d -p 6001:6001 dbc6b18cba4d

     step9:测试

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Clickhouse与Doris的区别

Doris使用较为简单&#xff0c;join功能更强大&#xff0c;运维更简单&#xff0c;灵活的扩容缩容&#xff0c;分布式更强&#xff0c;支持事务和幂等性导数 Clickhouse性能更佳&#xff0c;导入性能和单表查询性能更好&#xff0c;同时可靠性更好&#xff0c;支持非常多的表引…

谈一谈AI对人工的取代

文章目录AI绘画现在达到了什么水平&#xff1f;易用性怎么样&#xff1f;**缘起&#xff1a;2015年 用文字画画****2021年 Dalle 与 开源社区的程序员们****openAI与它并不open的Dalle****AI开源社区****Dream by [wombo](https://www.zhihu.com/search?qwombo&search_sou…

内农大《嵌入式基础》实验二 C语言进阶和Makefile

一、 实验目的 利用多文件编程&#xff0c;掌握Linux环境下C程序的编辑、编译、运行等操作。掌握Makefile文件的编写、变量及隐式规则和模式规则的应用。掌握Linux环境下main函数的参数。掌握各类指针的应用。 二、 实验任务与要求 根据实验要求编写C语言程序&#xff1b;写…

LiteIDE主题定制教程【续】

摘要&#xff1a;本篇文章是LiteIDE主题定制教程的续作&#xff0c;之所以会有这篇续作&#xff0c;是因为在写完那篇文章之后&#xff0c;我在使用过程中陆续发现了一些问题&#xff0c;以及一些可以优化的地方&#xff0c;我将这些内容作为补充放到这篇文章里。所有更新都已同…

<Linux系统复习>文件系统的理解

一、本章重点 1、磁盘的物理结构 2、磁盘文件如何存储&#xff1f; 3、目录的理解 4、创建一个文件做了什么&#xff1f; 5、删除一个文件做了什么&#xff1f; 6、软连接 7、硬链接 01 磁盘的物理结构 磁盘是硬件结构唯一的机械设备&#xff0c;它通过磁头来进行磁盘的读写&am…

LabVIEW前面板上的字体大小取决于操作系统

LabVIEW前面板上的字体大小取决于操作系统 创建了一个VI&#xff0c;其前面板使用了多个标签和文本。我发现Windows 7系统上的字体大小与Windows 10系统上的字体大小不同。这导致我的前面板看起来不像我希望在计算机上看到的那模样。如何使字体在所有Windows操作系统上变得相同…

【Linux_】权限

【Linux_】权限 心有所向&#xff0c;日复一日&#xff0c;必有精进专栏&#xff1a;《Linux_》作者&#xff1a;沂沐沐目录 【Linux_】权限 前言 Linux权限的概念&#xff08;是什么&#xff09;&#xff1f; 什么是权限&#xff1f; Linux权限管理 文件访问者的分类&am…

npm包学习

想开发自己的的工具包&#xff0c;那必然要借鉴一些常用的npm包来帮我们解决一些问题&#xff0c;下面就罗列一些在学习vue-cli实现原理时候遇到的一些依赖包吧。 1、chalk 用途&#xff1a;可以修改终端输出字符的颜色&#xff0c;类似css的color属性&#xff0c;npm地址&am…

100天精通Python(数据分析篇)——第62天:pandas常用统计方法与案例

文章目录每篇前言一、常用统计方法与案例1. 求和&#xff08;sum&#xff09;2. 求平均值&#xff08;mean&#xff09;3. 求最小值&#xff08;min&#xff09;4. 求最大值&#xff08;max&#xff09;5. 求中位数&#xff08;median&#xff09;6. 求众数&#xff08;mode&am…

jQuery网页开发案例:jQuery 其他方法--jQuery 拷贝对象,多库共存,jQuery 插件

jQuery 对象拷贝 如果想要把某个对象拷贝&#xff08;合并&#xff09; 给另外一个对象使用&#xff0c;此时可以使用 $.extend() 方法 语法&#xff1a; $.extend([deep], target, object1, [objectN]) 1. deep: 如果设为true 为深拷贝&#xff0c; 默认为false 浅拷贝 …

做减法才是真本事,别以为你很能学,做加法一点都不难

文章目录 顶级的高手才敢做减法 前言 一、做减法才是真本事 二、大数据梦想联盟活动开启 顶级的高手才敢做减法 前言 大多数人不懂&#xff0c;不会&#xff0c;不做&#xff0c;才是你的机会&#xff0c;你得行动&#xff0c;不能畏首畏尾 大数据等于趋势&#xff0c;一…

Vue中computed和watch区别

前言 vue中的computed和watch我们经常会用到&#xff0c;那么在什么场景下使用computed和watch&#xff0c;两者又有什么区别呢&#xff0c;傻傻分不清楚。记录一下&#xff0c;温故而知新&#xff01; computed computed是计算属性&#xff0c;基于data中声明过或者父组件传递…

makkefile文件自动化编译以及基础文件命令(补)

目录makefile文件&#xff1a;实现自动化编译基础文件命令find&#xff08;查找&#xff09;grep&#xff08;过滤&#xff09;| &#xff08;管道&#xff09;关机重启文件压缩解压分步压缩解压一步压缩解压makefile文件&#xff1a;实现自动化编译 文件名称必须是:makefile …

【day15】每日强训编程题——查找输入整数二进制中1的个数手套

查找输入整数二进制中1的个数_牛客题霸_牛客网 这道题非常简单&#xff0c;就一个思路&#xff1a; 按位与& 任何一个数按位与上1&#xff0c;如果这个数二进制的最后一位是1&#xff0c;那么按位与的结果就是1&#xff0c;否则就是0 代码思路&#xff1a;n按位与1后往右…

【splishsplash】PBD探究

上次我们探究了PBD是如何引入plishsplash的&#xff0c;以及其控制流。 https://blog.csdn.net/weixin_43940314/article/details/127569870 这次我们来讲如何在自己新建的类中控制PBD刚体。 上回说到 Simulator\PositionBasedDynamicsWrapper\PBDWrapper.cpp 中的 void PBD…

AXI协议详解(6)-原子访问

原子访问 本章介绍了 AXI 协议如何实现排他访问和锁定访问机制。 它包含以下部分&#xff1a; 原子访问排他访问锁定访问 6.1 原子访问 为了实现原子访问权限&#xff0c;ARLOCK[1:0] 或 AWLOCK[1:0] 信号提供排他访问和锁定访问。 表 6-1 显示了 ARLOCK[1:0] 和 AWLOCK[1:…

3.NLP基础:文本可视化简述

1.文本可视化的流程 文本可视化依赖于自然语言处理&#xff0c;因此词袋模型、命名实体识别、关键词抽取、主题分析、情感分析等是较常用的文本分析技术。文本分析的过程主要包括特征提取&#xff0c;通过分词、抽取、归一化等操作提取出文本词汇级的内容&#xff0c;利用特征…

Qt 集成 FFmpeg 实现颜色格式转换

目录 1. Qt 集成 FFmpeg 1.1 下载 FFmpeg 1.2 Qt 集成 FFmpeg 1.2.1 修改 .pro 文件 1.2.2 放入 dll 文件 1.2.3 代码中使用 FFmpeg 2. 图像格式转换 3. 预览 4. 项目地址 项目需要&#xff0c;写个小工具来实现图像颜色格式的转换&#xff0c;主要的 Feature 如下&am…

百度最强中文AI作画大模型

前言 最近文生图领域的发展可谓是分生水起&#xff0c;这主要是得益于最近大火的扩散模型&#xff0c;之前笔者也写过一篇关于文本生产3D模型的文章&#xff0c;大家感兴趣的可以穿梭&#xff1a; https://zhuanlan.zhihu.com/p/570332906 今天要给大家介绍的这一篇paper是百度…

AXI协议详解(10)-非对齐传输

非对齐传输 本章介绍 AXI 协议如何处理未对齐的传输。 它包含以下部分&#xff1a; • 未对齐的传输 • 示例 10.1 关于未对齐传输 AXI 协议使用基于突发的寻址&#xff0c;这意味着每个事务由多个数据传输组成。 通常&#xff0c;每个数据传输都与传输大小对齐。 例如&…