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

docker多阶段镜像制作,比如nginx镜像,编译+制作

镜像制作

nginx源码包

nginx源码拷贝容器

编译要用到gcc make , 以及扩展工具 pcre openssl

#  "pcre"    perl compatibal regulaer expression

刚开始,可以两个终端,

一个手工操作(编译安装、拷贝、环境变量等),

一个写Dockerfile

手工操作指令转换Dockerfile

./configure 配置时候两个核心参数

]# ./configure --help  |  grep  pcre
  --without-pcre                     disable PCRE library usage
  --with-pcre                        force PCRE library usage
  --with-pcre=DIR                    set path to PCRE library sources
  --with-pcre-opt=OPTIONS            set additional build options for PCRE
  --with-pcre-jit                    build PCRE with JIT compilation support]# ./configure --help  |  grep  ssl
  --with-http_ssl_module             enable ngx_http_ssl_module
  --with-mail_ssl_module             enable ngx_mail_ssl_module
  --with-stream_ssl_module           enable ngx_stream_ssl_module
  --with-stream_ssl_preread_module   enable ngx_stream_ssl_preread_module
  --with-openssl=DIR                 set path to OpenSSL library sources
  --with-openssl-opt=OPTIONS         set additional build options for OpenSSL

$PATH 是,指令寻址变量执行命令依靠这个变量查找

要是变量里面找到命令可以直接执行要是找不到不能执行

nginx目录变量里面可以

export PATH=${PATH}:/usr/local/nginx/sbin # 拼接

Dockerfile文件nginx放在前台执行

CMD ["nginx", "-g", "daemon off;"]

多阶段镜像制作就是一个nginx编译好然后利用这个一个nginx镜像

java软件需要

git pull 下载代码

maven 编译

这时候出来软件包。

然后才能制作镜像

这个多阶段镜像制作。

docker to docker 就是多阶段镜像制作镜像制作多个阶段

通过as参数容器起名字

 ~]# cat nginx/Dockerfile 
FROM mylinux:latest as builder
ADD nginx-1.22.1.tar.gz  /
WORKDIR /nginx-1.22.1
RUN dnf -y install gcc make  pcre-devel  openssl-devel
RUN  ./configure --prefix=/usr/local/nginx  --with-pcre  --with-http_ssl_module
RUN  make && make install
RUN  echo  'this is for nginx test'  >  /usr/local/nginx/html/index.htmlFROM mylinux:latest
RUN yum -y install pcre-devel openssl-devel  && yum clean all
COPY --from=builder /usr/local/nginx /usr/local/nginx
ENV PATH=${PATH}:/usr/local/nginx/sbin
WORKDIR /usr/local/nginx
EXPOSE 80/tcp
CMD ["nginx", "-g", "daemon off;"]~]# docker inspect web | grep  172
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",~]# curl  http://172.17.0.2
this is for nginx test

上面容器里面进行编译编译好软件包拷贝下面镜像里面进行配置,制作镜像

单阶段镜像比较

为了镜像更加精简更加,所以采用多阶段制作镜像,

不把编译工具放在镜像里面

编译工具就是编译工具镜像制作就是镜像制作

这个就是多阶段镜像制作

两个阶段第一个阶段编译第二个阶段镜像制作

两个阶段合起来需要源码Dockerfile可以完成镜像制作

部署java程序的时候,经常用到。

java的所有程序都得maven一下,不maven编译的话,不是jar包,运行不了。

所有java程序一个编译

多阶段制作镜像好处上面编译可以

下面制作镜像时候不是一个镜像

上面镜像可能编译工具代码拉下直接编译

下面打完包直接运行上面关系

多阶段制作镜像也叫docker to docker,能熟练运用,可以快速做出自定义镜像,方便适用于生产环境。

相关文章:

docker多阶段镜像制作,比如nginx镜像,编译+制作

镜像制作, nginx的源码包 把nginx源码拷贝到容器内 编译要用到gcc make , 以及扩展工具 pcre openssl # "pcre" perl compatibal regulaer expression 刚开始,可以两个终端, 一个手工操作(编译安装、拷贝、环境变量等)&#xf…...

大语言模型量化方法GPTQ、GGUF、AWQ详细原理

大语言模型量化的目的是减少模型的计算资源需求和存储占用,同时尽量保持模型的性能。以下是几种常见的量化方法的原理; 1. GPTQ (Gradient-based Post-training Quantization) GPTQ 是一种基于梯度的后训练量化方法,主要目的是在减少浮点计…...

《 C++ 修炼全景指南:十 》自平衡的艺术:深入了解 AVL 树的核心原理与实现

摘要 本文深入探讨了 AVL 树(自平衡二叉搜索树)的概念、特点以及实现细节。我们首先介绍了 AVL 树的基本原理,并详细分析了其四种旋转操作,包括左旋、右旋、左右双旋和右左双旋,阐述了它们在保持树平衡中的重要作用。…...

SAP 特别总账标识[SGL]

1. 特别总账标识(SGL)概述 1.1 定义与目的 特别总账标识(Special General Ledger, SGL)在SAP系统中用于区分客户或供应商的不同业务类型,以便将特定的业务交易记录到非标准的总账科目中。 定义:SGL是一个用于标记特殊业务类型的…...

认知杂谈77《简单:通往高手的技巧》

内容摘要:          在信息爆炸、关系复杂的时代,简单是复杂背后的真谛。简单如“112”,是智慧的朴素呈现。简单有强大力量,像清泉般纯净,如“我爱你”简单却有力,基础财务知识也体现其在理财中的作…...

《SmartX ELF 虚拟化核心功能集》发布,详解 80+ 功能特性和 6 例金融实践

《SmartX ELF 虚拟化核心功能集》电子书现已发布!本书详细介绍了 SmartX ELF 虚拟化及云平台核心功能,包含虚机服务、容器服务、网络服务、存储服务、运维管理、工具服务、数据保护等各个方面。 即刻下载电子书,了解如何利用基于 SmartX ELF …...

9月23日

思维导图 作业 统计家目录下.c文件的个数 #!/bin/bashnum0for file in ~/*.c; doif [ -f "$file" ]; then((num))fi doneecho "家目录下.c文件的个数: $num"...

如何使用Jinja定义dbt宏

dbt宏在dbt框架内的工作方式与传统编程中的函数类似。它允许用户将特定的、通常是重复的SQL逻辑封装到可调用的命名单元中,就像在其他编程语言中用函数来避免重复代码一样;dbt宏定义特定业务的SQL逻辑,然后在dbt项目中需要的地方调用该宏函数…...

深入理解 JavaScript 三大作用域:全局作用域、函数作用域、块级作用域

一. 作用域 对于多数编程语言,最基本的功能就是能够存储变量当中的值、并且允许我们对这个变量的值进行访问和修改。那么有了变量之后,应该把它放在哪里、程序如何找到它们?是否需要提前约定好一套存储变量、访问变量的规则?答案…...

【门牌制作 / A】

题目 代码 #include <bits/stdc.h> using namespace std; int main() {int cnt 0;for (int i 1; i < 2020; i){string s;s to_string(i);cnt count(s.begin(), s.end(), 2);}cout << cnt; }...

Git+Jenkins 基本使用(Basic Usage of Git+Jenkins)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...

智谱清言:智能语音交互的引领者,解锁高效沟通新体验

哪个编程工具让你的工作效率翻倍&#xff1f; 在日益繁忙的工作环境中&#xff0c;选择合适的编程工具已成为提升开发者工作效率的关键。不同的工具能够帮助我们简化代码编写、自动化任务、提升调试速度&#xff0c;甚至让团队协作更加顺畅。那么&#xff0c;哪款编程工具让你…...

前端组件库

vant2现在的地址 Vant 2 - Mobile UI Components built on Vue...

后端常用的mybatis-plus方法以及配合querywapper使用

目录 一、插入数据 save方法 二、删除操作 removeById方法 三、更新操作 updateById方法 四、查询操作 selectById方法 五、条件构造器QueryWrapper的更多用法 1.比较操作符 2.逻辑操作符 3.模糊查询 4.空值判断 一、插入数据 save方法 save(T entity):向数据库中插入…...

【设计模式】万字详解:深入掌握五大基础行为模式

作者&#xff1a;后端小肥肠 &#x1f347; 我写过的文章中的相关代码放到了gitee&#xff0c;地址&#xff1a;xfc-fdw-cloud: 公共解决方案 &#x1f34a; 有疑问可私信或评论区联系我。 &#x1f951; 创作不易未经允许严禁转载。 姊妹篇&#xff1a; 【设计模式】&#xf…...

C++ 9.19

练习&#xff1a;要求在堆区申请5个double类型的空间&#xff0c;用于存储5名学生的成绩。请自行封装函数完成 1> 空间的申请 2> 学生成绩的录入 3> 学生成绩的输出 4> 学生成绩进行降序排序 5> 释放申请的空间 主程序中用于测试上述函数 #include<ios…...

[Unity Demo]从零开始制作空洞骑士Hollow Knight第五集:再制作更多的敌人

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、制作敌人另个爬虫Crawler 1.公式化导入制作另个爬虫Crawler素材2.制作另个爬虫Crawler的Crawler.cs状态机3.制作敌人另个爬虫Crawler的playmaker状态机二、…...

怎么把excel翻译成英文?这些翻译技巧记得收藏

在处理Excel数据时&#xff0c;我们常常会遇到多语言的数据集&#xff0c;这无疑给数据分析和整理带来了不小的挑战。 幸运的是&#xff0c;随着技术的发展&#xff0c;现在有多种工具可以帮助我们进行Excel中的批量翻译&#xff0c;这些工具以其强大的翻译功能和便捷的操作方…...

信息技术引领的智能化未来

信息技术引领的智能化未来 随着信息技术的飞速发展&#xff0c;社会各个领域正在加速迈入智能化的新时代。信息技术的广泛应用&#xff0c;尤其是人工智能、大数据、物联网等前沿技术的创新与融合&#xff0c;正在从根本上改变着人们的生产和生活方式。本文将探讨信息技术在智…...

【QT开发-Pyside】使用Pycharm与conda配置Pyside环境并新建工程

知识拓展 Pycharm 是一个由 JetBrains 开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它主要用于 Python 编程语言的开发。Pycharm 提供了代码编辑、调试、版本控制、测试等多种功能&#xff0c;以提高 Python 开发者的效率。 Pycharm 与 Python 的关系 Pycharm 是…...

全志T113-i嵌入式Linux系统一键升级方案设计与实现

1. 项目概述&#xff1a;为什么我们需要“一键升级”&#xff1f;拿到一块全志T113-i的开发板&#xff0c;或者用它做产品的朋友&#xff0c;肯定都经历过手动更新固件的“痛苦”。传统的升级方式&#xff0c;比如用PhoenixSuit、LiveSuit这类PC端工具&#xff0c;需要连接USB线…...

告别TensorFlow!用Zylo117的PyTorch版EfficientDet-D0,手把手教你训练自己的Logo检测模型

从TensorFlow到PyTorch&#xff1a;用EfficientDet-D0打造高精度Logo检测器实战指南 在计算机视觉领域&#xff0c;目标检测一直是热门研究方向。EfficientDet作为谷歌大脑团队提出的高效检测架构&#xff0c;凭借其创新的BiFPN和复合缩放策略&#xff0c;在精度和效率之间取得…...

优惠电影票API接口,7折电影起步

请求参数说明store_idint是1店铺idshowIdstring是没下划线那个showid场次ID返回参数说明codestring00000000代表成功msgstring获取成功获取成功timestring1639640142时间戳dataobject[]infoobject[]影片信息idstring2film_idstring...

BENTLY NEVADA 330980-51-00传感器测量系统

BENTLY NEVADA 330980-51-00 是一款本特利内华达出品的传感器测量系统&#xff0c;专用于旋转机械的振动、位移及转速监测&#xff0c;广泛应用于汽轮机、压缩机、风机等关键设备。中间&#xff1a;15条产品特点330980-51-00 采用涡流传感器原理&#xff0c;非接触测量&#xf…...

日志分析 Elasticsearch 和 logstach.filebeat.

一、Elasticsearch 到底是啥&#xff1f;简单说&#xff0c;ES 就是一个能飞速搜索和分析海量数据的搜索引擎。类似百度、谷歌&#xff0c;但它是给你公司内部的数据用的。比如&#xff1a;淘宝搜商品&#xff0c;输入“手机 拍照好”&#xff0c;毫秒级给你结果——背后就是 E…...

用Midas Civil搞定箱梁桥抗倾覆验算:从规范解读到多支座工况的实操避坑

用Midas Civil实现箱梁桥抗倾覆验算的工程实践指南 箱梁桥作为现代交通基础设施的重要组成部分&#xff0c;其抗倾覆稳定性直接关系到桥梁运营安全。2018版《公路钢混及预混桥涵设计规范》&#xff08;JTG 3362-2018&#xff09;首次系统性地提出了抗倾覆验算要求&#xff0c;…...

推荐几款实测有效的降重工具,要求同时对付查重系统和AIGC检测

毕业季论文两大 “生死关”—— 知网 / 维普 / 格子达等查重标红、AIGC 疑似率超标&#xff0c;已成为无数学生的噩梦。普通降重工具仅能降重复率&#xff0c;改写后仍难逃 AI 检测&#xff1b;AI 写作工具生成内容流畅度高&#xff0c;却自带明显 AI 痕迹&#xff0c;双检极易…...

2026降AI率工具红黑榜:降AIGC工具怎么选?照着用就行!

2026年论文降AI率工具竞争激烈&#xff0c;千笔AI、ThouPen、豆包凭借精准适配国内高校AI率检测规范成为红榜首选。黑榜需警惕低质免费工具、无正规检测对接、改写痕迹生硬的产品。选择时应综合考量&#xff08;降AI效果 - 学术合规性 - 使用成本&#xff09;三维模型&#xff…...

Camunda并行会签实战:从BPMN设计到数据库状态变化的完整追踪

Camunda并行会签实战&#xff1a;从BPMN设计到数据库状态变化的完整追踪 在复杂业务流程自动化领域&#xff0c;并行会签是一种常见但实现难度较高的模式。当三个部门主管需要同时审批一份采购申请时&#xff0c;传统串行审批会导致效率低下&#xff0c;而并行处理又面临状态同…...

【习题01】喝汽水问题

题目&#xff1a;喝汽水&#xff0c;1瓶汽水1元&#xff0c;2个空瓶可以换一瓶汽水&#xff0c;给20元&#xff0c;可以喝多少汽水&#xff08;编程实现&#xff09;。 1、题目解析&#xff1a; 通过分析&#xff0c;我们可以得到以下流程图&#xff1a;20元钱&#xff0c;&…...