docker镜像变量传递

docker镜像变量传递问题

直接使用变量似乎读取不到

[root@vm t]# cat Dockerfile
FROM centos:7.9.2009
ENV JAVA_OPTS " -Xloggc:=/opt/${HOSTNAME}.log"
CMD ["/usr/sbin/sshd", "-D"]
docker build -t centos:env-tag .
docker run -itd --name test centos:env-tag bash
docker exec -it test bash[root@51f0817b6080 /]# env| grep JAVA  #读不到变量
JAVA_OPTS= -Xloggc:=/opt/.log

RUN写入

[root@vm t]# cat Dockerfile
FROM centos:7.9.2009
RUN hostname=${HOSTNAME}
ENV JAVA_OPTS " -Xloggc:=/opt/${HOSTNAME}.log"
RUN echo "Hostname is ${HOSTNAME}" > /tmp/hostname.txt
CMD ["/usr/sbin/sshd", "-D"]docker build -t centos:env-tag .
docker run -itd --name test centos:env-tag bash
docker exec -it test bash[root@51f0817b6080 /]# env| grep JAVA  
JAVA_OPTS= -Xloggc:=/opt/.log  #读不到变量,每一步应该是隔离开的
[root@51f0817b6080 /]# cat /tmp/hostname.txt
Hostname is 1c31bfe5ea0f   #虽然执行成功,但并不是容器本身的HOSTNAME,应该是隔离开的
[root@51f0817b6080 /]# echo $HOSTNAME
51f0817b6080docker rm -f test
docker rmi centos:env-tag
[root@vm p]# cat Dockerfile
FROM centos:7.9.2009
RUN hostname=${HOSTNAME}  && JAVA_OPTS=" -Xloggc:=/opt/${hostname}.log"
CMD ["/usr/sbin/sshd", "-D"]docker build -t centos:env-tag .
docker run -itd --name test centos:env-tag bash
docker exec -it test bash[root@ac5c509f45d0 /]# echo $JAVA_OPTS  # 依然不存在
[root@ac5c509f45d0 /]# echo $hostname  # 不存在	

–build-arg传入变量

[root@vm p]# cat Dockerfile
FROM centos:7.9.2009
ARG tag
ENV JAVA_OPTS " -Xloggc:=/opt/${tag}.log "
CMD ["/usr/sbin/sshd", "-D"][root@vm T]# docker build --build-arg tag=`date +"%m%d%H%M"` -t centos:env-tag .
[root@vm t]# docker run -itd --name test centos:env-tag bash
[root@vm t]# docker exec -it test env|grep JAVA  #传入成功
JAVA_OPTS= -Xloggc:=/opt/01171046.log 

启动脚本定义

#用tomcat先试下
[root@vm jk]# docker run -itd -v /root/p/jk/catalina.sh:/usr/local/tomcat/bin/catalina.sh tomcat:jdk8
# OS specific support.  $var _must_ be set to either true or false.
JAVA_OPTS="-Xms1g -Xmx1g -Xloggc:=/opt/$HOSTNAME.log"root@5354c3aeb850:/usr/local/tomcat# ps -ef | grep java
root         1     0  5 08:07 pts/0    00:00:01 /opt/java/openjdk/bin/java ... -Xms1g -Xmx1g -Xloggc:=/opt/5354c3aeb850.log

部署使用

[root@vm p]# cat Dockerfile
FROM centos:7.9.2009
ADD target/*.jar app.jar
ADD start.sh start.sh
ENTRYPOINT ["sh","start.sh"][root@vm p]# cat start.sh
JAVA_OPTS="-XX:+UseContainerSupport -XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:MaxRAMPercentage=65.0 -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=384M -XX:MaxDirectMemorySize=64M -Xloggc:=/opt/$HOSTNAME.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/$HOSTNAME.hprof"
java $JAVA_OPTS -jar /app.jar[root@market-58c5974c94-6xkkt /]# ps -ef | grep java
root           8       1 65 16:31 ?        00:00:37 java -XX:+UseContainerSupport -XX:InitialRAMPercentage=65.0 -XX:MaxRAMPercentage=65.0 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:MaxRAMPercentage=65.0 -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=384M -XX:MaxDirectMemorySize=64M -Xloggc:=/opt/market-58c5974c94-6xkkt.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/market-58c5974c94-6xkkt.hprof -jar /app.jar

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

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

相关文章

ele-h5项目使用vue3+vite+vant4开发:第四节、业务组件-SearchView组件开发

需求分析 展示切换动画搜索框输入文字&#xff0c;自动发送请求搜索结果展示搜索状态维护历史搜索展示&#xff0c;点击历史搜索后发送请求历史搜索更多切换动画效果 <script setup lang"ts"> import OpSearch from /components/OpSearch.vue import { ref } f…

PCA等、Compression is Intelligence.

ChatGPT是如何产生心智的&#xff1f;|神经元|神经网络_网易订阅 (163.com) Compression For AGI&#xff1a;压缩即智慧&#xff0c;LLM是最好的无损压缩器 - 知乎 (zhihu.com) 压缩即智慧 - 知乎 (zhihu.com)

Vue 图片加载失败处理

Vue 图片加载失败处理 很多人会使用 error 方法在图片加载 失败时替换img.src 的方式 但是这种方式在默认图片加载失败时&#xff0c;error会出现死循环&#xff0c;所以我使用了error v-if的方式。 <template><div><!-- 正常时显示 --><img v-if&quo…

Android消息通知Notification

Notification 发送消息接收消息 #前言 最近在做消息通知类Notification的相关业务&#xff0c;利用闲暇时间总结一下。主要分为两部分来记录&#xff1a;发送消息和接收消息。 发送消息 发送消息利用NotificationManager类的notify方法来实现&#xff0c;现用最普通的方式发…

IDEA2023打开新项目默认SDK变成了17

问题描述 项目安装了2个sdk版本&#xff0c;jdk8和jdk17 自从升级IDEA版本到2023以后&#xff0c;每次打开新项目&#xff0c;sdk都被默认选择成了jdk17, 每次都得手动修改 &#xff08;File--Project Structure&#xff09;&#xff0c;超级麻烦。 没有用的解决方法 以下这…

C++模板:函数模板

基本语法&#xff1a; template <typename T> void mySwap(T& a, T& b) {//类型参数化T temp a;a b;b temp; } void test01() {int a 10, b 20;//自动类型推导mySwap(a,b);//显示指定类型mySwap<int>(a, b); } 实例&#xff1a;数组排序 template&…

2. 路由 Vue-Router

目录 2.1 Vue-Router 介绍 2.2 路由配置 2.3 嵌套路由 Vue1&#xff1a;基础跟使用方式 2.1 Vue-Router 介绍 vue 属于单页面应用&#xff0c;所谓路由&#xff0c;就是根据浏览器路径不同&#xff0c;用不同的视图组件替换这个页面内容。 在vue应用中使用路由功能&#x…

Unity 渲染管线自动转换的实现 支持HDRP转URP,URP转HDRP

HDRP和URP无法平滑切换&#xff0c;因为属性、功能差异巨大。 本脚本仅对可对应的默认脚本和属性做了转换处理。细节调整还需自己搞。 自动转换可以节省手动更换shader、texture、通用属性的劳动成本。 操作步骤 使用前确保当前项目中存在HDRP和URP的包&#xff0c;没有请到p…

【GPU驱动开发】- GPU架构流程

前言 不必害怕未知&#xff0c;无需恐惧犯错&#xff0c;做一个Creator&#xff01; 一、总述 GPU&#xff08;Graphics Processing Unit&#xff0c;图形处理单元&#xff09;是一种专门用于处理图形和并行计算的处理器。GPU系统架构通常包括硬件和软件层面的组件。 总体流…

UE4 C++ 枚举类型

先在UCLASS()前写入&#xff1a; //定义枚举变量&#xff1a;方法一 UENUM(BlueprintType) //BlueprintType&#xff1a;在蓝图中可显示、创建该枚举变量 namespace MyEnumType //namespace&#xff1a;命名空间&#xff0c;支持同样的变量命令、便于访问//MyEnumType&#xf…

仪器接口设计

不是所有设备都是TCP连接模式&#xff0c;有读文件的、读数据库的设备&#xff0c;为此还需要一个客户端仪器接口程序&#xff0c;面向接口编程是一个良好的思想&#xff0c;他使得调用者和接口实现者不用绑定太死&#xff0c;只要双方按约定实现即可。 仪器有读文件的、写文件…

Maven配置笔记

1、下载Maven 在Maven的官网即可下载&#xff0c;点击访问Apache Maven。 2、配置环境变量 chcp 65001 echo off set mvnhomeE:\apache-maven-3.8.4 rem LPY echo. echo ************************************************************ echo * …

线程池,定时器以及阻塞队列(生产者/消费者模型)

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录专栏&#xff1a;线程池,定时器以及阻塞队列(生产者/消费者模型) &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 实现线程池,定时器以及阻塞队列,生产者/消费者模型 线程池线程池…

Redis核心技术与实战【学习笔记】 - 11.响应延迟的波动问题及解决方案

在 Redis 的实际应用中&#xff0c;有一个非常严重的问题&#xff0c;就是 Redis 突然变慢了。举个例子&#xff0c;在秒杀场景下&#xff0c;一旦 Redis 变慢了&#xff0c;大量的用户下单请求就会被拖慢&#xff0c;也就是说&#xff0c;用户提交了下单申请&#xff0c;确没有…

【JavaEE进阶】 图书管理系统开发日记——肆

文章目录 &#x1f343;前言&#x1f38d;约定前后端交互接⼝&#x1f340;服务器代码实现&#x1f6a9;控制层&#x1f6a9;业务层&#x1f6a9;数据层 &#x1f334;前端代码的修改⭕总结 &#x1f343;前言 今天我们来实现修改图书模块 首先我们先来看一下&#xff0c;需要…

【React】redux状态管理、react-redux状态管理高级封装模块化

【React】react组件传参、redux状态管理 一、redux全局状态管理1、redux概述2、redux的组成1.1 State-状态1.2 Action-事件1.3 Reducer1.4 Store 3、redux入门案例1.1 前期准备1.2 构建store1.2.1 在src下新建store文件夹1.2.2 在store文件夹下新建index.ts文件1.2.3 在index.t…

[AIGC] 21世纪Java与Go的相爱相杀

在21世纪的软件开发领域中&#xff0c;Java和Go这两门编程语言可谓是相爱相杀的存在。它们各自拥有着强大的特点和独特的优势&#xff0c;同时也存在着一些明显的竞争和冲突。让我们来看看这两门语言的故事&#xff0c;以及它们之间的深远意义。 文章目录 Java的魅力Go的魅力相…

C++写算法题时常见问题(稳定更新)

目录 1.如何用 getline 函数读取用户输入的一行 2.如何防止用 scanf 读取字符时读取了 换行和空格 3.map和unordered_map的差别和使用 4.“表达式求值”问题解析 5.运行报RE错误 6.在set或者map里面使用结构体 7.运行时报TLE时&#xff0c;时间复杂度问题 8.double类型的…

Photoshop CS6 下载安装教程,保姆级教程,小白也能轻松搞的,附安装包

前言 Adobe Photoshop CS6强大的照片拍摄和突破性的新功能&#xff0c;用于复杂的图形、选择、逼真的绘画和装饰智能。创建惊人的高动态范围(HDR)图像。用逼真的笔触和混合的颜色绘画。消除噪音&#xff0c;添加种子&#xff0c;并绘制一个国家最先进的摄影设备的草图。凭借原…