当前位置: 首页 > 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 是…...

利用快马平台快速构建类FinalShell服务器监控Web原型

最近在折腾服务器监控工具&#xff0c;发现FinalShell确实好用&#xff0c;但有时候团队协作或者临时演示时&#xff0c;还是需要一个轻量级的Web版监控面板。正好发现了InsCode(快马)平台&#xff0c;用它快速搭建了一个原型&#xff0c;分享下实现思路。 整体架构设计 这个监…...

毕业设计作品精选【芳芯科技】酒驾检测座椅设计

实物效果图&#xff1a;实现功能&#xff1a;有人的情况下&#xff0c;单片机实时采集周围的酒精浓度&#xff0c;如果超出&#xff0c;蜂鸣器报警&#xff0c;LED闪烁。检测座位重量和检测人体发射的红外&#xff0c;两者都满足认为座位有人&#xff0c;否则无人。配有显示屏进…...

Qwen3.5-9B-AWQ-4bit Visual Studio开发者的AI伙伴:C#与.NET项目集成

Qwen3.5-9B-AWQ-4bit Visual Studio开发者的AI伙伴&#xff1a;C#与.NET项目集成 1. 当AI大模型遇上.NET开发 想象一下这样的场景&#xff1a;你在Visual Studio中编写一个ASP.NET Core控制器时&#xff0c;突然卡在某个LINQ查询的实现上。这时&#xff0c;你的IDE不仅能提示…...

AgentCPM深度研报助手企业级部署架构设计:高并发下的性能与成本优化

AgentCPM深度研报助手企业级部署架构设计&#xff1a;高并发下的性能与成本优化 最近和几个做金融科技的朋友聊天&#xff0c;他们都在头疼一件事&#xff1a;公司内部的分析师、研究员越来越多地依赖AI来辅助撰写行业研报&#xff0c;但现有的AI服务要么太贵&#xff0c;要么…...

从演示到实战:基于快马平台构建一个功能完整的AI绘画社区应用

今天想和大家分享一个很有意思的实战项目 - 在InsCode(快马)平台上构建一个功能完整的AI绘画社区应用。这个想法来源于阿里悟空官网展示的AI绘画应用场景&#xff0c;但我们要做的是更贴近真实产品的综合性解决方案。 项目整体规划 首先需要明确&#xff0c;一个完整的AI绘画社…...

效率提升秘籍,用快马平台生成模块化openclaw配置代码

在深度学习项目中&#xff0c;模型配置往往是开发过程中最耗时的环节之一。最近我在尝试构建一个openclaw模型时&#xff0c;发现通过InsCode(快马)平台可以大幅提升效率&#xff0c;今天就分享一下我的实践心得。 模块化设计思路 传统模型开发中&#xff0c;我们经常需要反复编…...

Citra模拟器全方位指南:从安装到优化的3DS游戏体验提升方案

Citra模拟器全方位指南&#xff1a;从安装到优化的3DS游戏体验提升方案 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra Citra作为一款开源高性能的Nintendo 3DS模拟器&#xff0c;为Windows、Linux和macOS用户提供…...

开源工具终极方案:3步解锁Cursor Pro全功能完全指南

开源工具终极方案&#xff1a;3步解锁Cursor Pro全功能完全指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial…...

从RGB合并到多传感器融合:深入拆解AXI4-Stream Combiner IP在Zynq平台上的两种典型应用

从RGB合并到多传感器融合&#xff1a;深入拆解AXI4-Stream Combiner IP在Zynq平台上的两种典型应用 在FPGA开发中&#xff0c;数据流的高效处理一直是工程师面临的核心挑战之一。当系统需要同时处理多个并行数据源时&#xff0c;如何将这些数据流有序、高效地合并为单一数据流…...

云优化 SEO 软件的内容优化功能有哪些

云优化 SEO 软件的内容优化功能有哪些 在当今的数字化时代&#xff0c;网站的流量和排名直接关系到企业的知名度和市场竞争力。而在这其中&#xff0c;云优化 SEO 软件的内容优化功能起到了至关重要的作用。云优化 SEO 软件的内容优化功能具体有哪些呢&#xff1f;本文将详细探…...