(十四)、为 SpringCloud 项目生成 Docker 镜像

文章目录

    • 1、原理
    • 2、最佳实践
      • 2.1、获得 SpringCloud 微服务启动模块的 jar 文件
      • 2.2、准备文件夹和 Dockerfile 文件
      • 2.3、 Dockerfile 文件的内容
      • 2.4、通过命令行构件新镜像
    • 3、异常情况和处理:failed to create LLB definition
      • 3.1、现象
      • 3.2、解决
        • 配置国内镜像仓库
        • 清理本地不使用 docker 资源
        • 手动拉取镜像
        • 再次build
    • 4、运行
      • 4.1、简单运行
      • 4.2、使用 Docker Compose

1、原理

类似 借助 Dockerfile生成新镜像-以nginx为例 中,基于 Nginx 已有镜像,可以生成新的自定义镜像。
为 SpringCloud 项目生成自定义镜像的基础镜像是 Java jdk镜像,基于此,添加 SpringCloud 启动模块的 jar 包,生成一个新镜像

2、最佳实践

2.1、获得 SpringCloud 微服务启动模块的 jar 文件

参考 将一个 SpringCloud 微服务运行 以 jar 方式运行

2.2、准备文件夹和 Dockerfile 文件

  • 把 2.1 中获得的jar 放到该目录下
  • 创建 Dockerfile 文件

在这里插入图片描述

2.3、 Dockerfile 文件的内容

# 使用官方的Java运行时作为父镜像
FROM openjdk:8-jre-alpine# 将当前目录下的可执行jar包复制到容器中的/app目录下
ADD bestcxx-starter.jar /app/bestcxx-starter.jar# 声明容器运行时需要开放的端口
EXPOSE 8080# 设置容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "/app/bestcxx-starter.jar"]

2.4、通过命令行构件新镜像

在文件夹目录下打开命令行,执行命令

// . 表示 文件相对路径
`docker build -t bestcxx-starter:0.0.1 .

顺利的话,你可以在本地看到新生成了镜像了
在这里插入图片描述

3、异常情况和处理:failed to create LLB definition

3.1、现象

在文件夹目录下直接运行 docker build -t bestcxx-starter:0.0.1 . 控制台报错


➜  docker-bestcxx docker build -t bestcxx-starter:0.0.1 .
[+] Building 151.7s (3/3) FINISHED                                                => [internal] load build definition from Dockerfile                         0.0s=> => transferring dockerfile: 606B                                         0.0s=> [internal] load .dockerignore                                            0.0s=> => transferring context: 2B                                              0.0s=> ERROR [internal] load metadata for docker.io/library/openjdk:8-jre-al  151.6s
------> [internal] load metadata for docker.io/library/openjdk:8-jre-alpine:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed commit on ref "unknown-sha256:360132d4d86b72fa978fa16437fe9aed6127dba50dc64149bc0f50ab9bd8af99": "unknown-sha256:360132d4d86b72fa978fa16437fe9aed6127dba50dc64149bc0f50ab9bd8af99" failed size validation: 8175 != 7882: failed precondition

3.2、解决

这种原因是网络不好,可以使用命令行单独拉取镜像,然后再运行 build

配置国内镜像源&清理缓存&手动拉镜像&build

配置国内镜像仓库

Docketesktop->Docker Engine

"registry-mirrors": ["http://hub-mirror.c.163.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://cr.console.aliyun.com","https://mirror.ccs.tencentyun.com"]
}
清理本地不使用 docker 资源
docker system prune -a //清理未使用的容器、镜像、网络和构建缓存。
docker system prune -a --volumes //在上述基础上还增加了对未使用的数据卷的清理。
手动拉取镜像
docker pull openjdk:8-jre-alpine
再次build
docker build -t bestcxx-starter:0.0.1 .

4、运行

4.1、简单运行

docker run -d -p 8877:8080 --name my_bestcxx_container bestcxx-starter:0.0.1

4.2、使用 Docker Compose

docker-compose up -d 运行

version: '3'services:my_bestcxx_container:image: bestcxx-starter:0.0.1container_name: my_bestcxx_containerports:- "8877:8080"restart: always

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenGL——着色器画一个点

一、 绘制 在窗口中间画一个像素点&#xff1a; #include <GL/glew.h> #include <GLFW/glfw3.h> #include <iostream>using namespace std;#define numVAOs 1GLuint renderingProgram; GLuint vao[numVAOs];GLuint createShaderProgram () {const char *v…

SQL的增删改查CRUD练习知识点(day27)

1 学习目标 重点掌握插入单条记录的语法了解全表插入记录的语法重点掌握修改记录的语法重点掌握删除记录的语法重点掌握主键约束、外键约束了解检查约束、非空约束、唯一约束 2 数据类型 MySQL支持多种数据类型&#xff0c;大致可以分类三类&#xff1a;数值、日期和字符串。…

【Maven】Maven 下载安装教程(超详细)(day30)

1 学习目标 了解Spring了解SpringBoot重点掌握创建SpringBoot项目重点掌握聚合项目的创建了解Spring基于XML方法进行IOC和依赖注入了解Maven的概念重点掌握使用Maven构建项目重点掌握使用Maven进行依赖引入 2 Maven 2.1 概述 Maven是跨平台的项目管理工具。作为Apache组织中…

Python(一)-快速入门

第一个入门实例 print(hello python) 注释 #:单行注释""" """:多行注释 # 这是单行注释 # 输出一个喜欢读的课外书 print("我最喜欢读 追风筝的人")print("----------------------------")"""这是多…

Python爱心射线

系列目录 序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…

004——双向链表和循环链表

目录 双向链表 双向链表的初始化&#xff08;与单链表类似&#xff09; 增&#xff1a; Ⅰ&#xff09;头插法 Ⅱ&#xff09;尾插法 Ⅲ&#xff09;中间插入 删 改 查 整体代码示例&#xff1a; 循环链表 循环单链表 ​编辑 循环双链表 双向链表 不同于单链表&…

2024年录屏神器大盘点,轻松捕捉屏幕精彩

现在讲解一些操作越来越便捷了&#xff0c;我 一般都是用录屏工具来边录制操作边讲解&#xff0c;这样可以更方便对方了解操作步骤。这次我就分享几款免费录屏工具一起来试试吧。 1.福晰录屏软件 链接&#xff1a;www.foxitsoftware.cn/REC/ 对于初次尝试录屏的新手来说&…

每天五分钟玩转深度学习框架PyTorch:获取神经网络模型的参数

本文重点 当我们定义好神经网络之后,这个网络是由多个网络层构成的,每层都有参数,我们如何才能获取到这些参数呢?我们将再下面介绍几个方法来获取神经网络的模型参数,此文我们是为了学习第6步(优化器)。 获取所有参数Parameters from torch import nn net=nn.Sequent…

Java | Leetcode Java题解之第397题整数替换

题目&#xff1a; 题解&#xff1a; class Solution {public int integerReplacement(int n) {int ans 0;while (n ! 1) {if (n % 2 0) {ans;n / 2;} else if (n % 4 1) {ans 2;n / 2;} else {if (n 3) {ans 2;n 1;} else {ans 2;n n / 2 1;}}}return ans;} }

UE5引擎工具链知识点

当我们提到“引擎工具链的开发”时&#xff0c;通常指的是为游戏开发或其他类型的软件开发创建一系列工具和技术栈的过程。这包括但不限于游戏引擎本身&#xff08;如Unity或Unreal Engine&#xff09;&#xff0c;以及围绕这些引擎构建的各种工具和服务&#xff0c;比如用于构…

CTFHub技能树-Git泄漏-Index

目录 一、Git索引&#xff08;Index&#xff09;的基本概念 二、解题过程 主旨&#xff1a;使用git泄漏恢复源代码 方法一&#xff1a;使用GitHack手动恢复 方法二&#xff1a;直接使用Git_Extract获取网站源代码拿去flag 当前大量开发人员使用git进行版本控制&#xff0c…

新书宣传:《量子安全:信息保护新纪元》

《量子安全&#xff1a;信息保护新纪元》 前言本书的看点本书的目录结语 前言 你好&#xff01; 这是我第一次发布类广告的博文&#xff0c;目的也很单纯&#xff0c;希望以作者的身份介绍一下自己出版的图书——《量子安全&#xff1a;信息保护新纪元》。此书于2024年7月出版…

【鸿蒙】HarmonyOS NEXT星河入门到实战1-开发环境准备

目录 一、达成目标 二、鸿蒙开发环境准备 2.1 开发者工作下载 2.2 解压安装 2.3 运行配置安装node.js和SDK 2.4 开始创建第一个项目 2.5 预览 2.5.1 预览遇到的问题&#xff08;报错&#xff09; 2.5.2 修改内容查看预览 三、备用下载地址&#xff08;如果下载是4.X版…

会声会影2024发布了没有? 会声会影2024更新哪些内容?

嘿&#xff0c;亲爱的的朋友们&#xff0c;今天我要跟大家安利一款让我彻底沉迷、不能自拔的神器 —— 会声会影2024&#xff01;如果你还在为视频编辑头疼&#xff0c;那么准备好迎接你的救星吧&#xff01; 会声会影2024是一款功能全面的视频编辑软件&#xff0c;它不仅能帮你…

基于Logistic-Map混沌序列的数字信息加解密算法matlab仿真,支持对文字,灰度图,彩色图,语音进行加解密

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于Logistic-Map混沌序列的数字信息加解密算法matlab仿真,系统包含GUI操作界面&#xff0c;系统支持对文字,灰度图,彩色图,语音进行加解密。 2.测试软件版本以及…

人工智能在C/C++中的应用

随着技术的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经成为我们日常生活中不可或缺的一部分。从智能手机的语音助手到自动驾驶汽车&#xff0c;AI的应用无处不在。在众多编程语言中&#xff0c;C和C因其高性能和灵活性&#xff0c;成为实现复杂AI算法的理想选…

分类预测|基于雪消融优化BP神经网络的数据分类预测Matlab程序SAO-BP 多特征输入多类别输出 含基础程序

分类预测|基于雪消融优化BP神经网络的数据分类预测Matlab程序SAO-BP 多特征输入多类别输出 含基础程序 文章目录 一、基本原理二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 SAO-BP模型结合了雪消融优化算法&#xff08;SAO&#xff09;和BP神经网络。以下是详细…

Linux中使用node xxx.js启动进程后终端关闭进程会自动关闭的解决方案

原标题&#xff1a;在Linux中想要运行一个node程序&#xff0c;但随着终端关闭&#xff0c;其node进程会自动关闭的解决方案&#xff1a; 使用nohup 运行命令&#xff0c;其中的app.js是你要运行的js output.log是运行日志 nohup node app.js > output.log 2>&1 &…

一. rpc基本学习

1. 什么是rpc&#xff0c;为什么有了http还要rpc 我们常说的http&#xff0c;应该是说的http1&#xff0c;http只是应用层的一个协议 Rpc是一种调用方式&#xff0c;全称叫远程过程调用&#xff0c;对应本地调用&#xff0c;rpc是一种调用方式&#xff0c;不是一种协议 更具体…

Marin说PCB之在CST软件中如何搭建两端子电容器--02

上回书到说到李相赫同学在导入一颗新的两端子电容器物料的时候&#xff0c;发现其阻抗频率特性曲线太反常了&#xff1a; 和之前的Murata家的GRT033D70E105ME18这个物料放在一起比对一下&#xff1a; 上编文章中有一句话我不知道诸位道友们是否还有印象啊&#xff1f; Murata家…