docker 初始化执行.sh修改.properties文件
1、testmysql.properties
rootuser=aa
rootpass=bb
2、用环境变量修改testmysql.properties里面的rootuser和rootpass的值的脚本testmysql.sh
#!/bin/sh
sed -i "s#^rootuser=.*#rootuser=${ROOT_USER}#g" /root/hzbdir/testmysql.properties
sed -i "s#^rootpass=.*#rootpass=${ROOT_PASS}#g" /root/hzbdir/testmysql.properties
exec "$@"
以上这种方式修改.properties文件,如果环境变量的值有特殊符号,比如:
MYSQL_CONNECTION_URL="jdbc:mysql://10.111.131.54:3306/mir-pack?useUnicode=yes&&characterEncoding=utf8&autoReconnect=true"
因为路径当中含有/所以替换语句当中不能用/作为分割符:
错误:sed -i "s/^rootuser=.*/rootuser=${ROOT_USER}/g" /root/hzbdir/testmysql.properties
正确:sed -i "s#^rootuser=.*#rootuser=${ROOT_USER}#g" /root/hzbdir/testmysql.properties
3、用Dockerfile构建容器
FROM 172.16.101.192/common/centos:6
MAINTAINER huzhengbo
ENV MYDIR /root/hzbdir
RUN mkdir $MYDIR
ADD testmysql.sh $MYDIR
ADD testmysql.properties $MYDIR
ENV ROOT_USER cc
ENV ROOT_PASS dd
#下面这一句必须加,要不然,容器初始化执行失败,docker run的时候会出错
RUN chmod 777 /root/hzbdir/testmysql.sh
#容器起来的时候会调用下面这个脚本
ENTRYPOINT ["/root/hzbdir/testmysql.sh"]
CMD ["/bin/bash"]
4、built 和run容器
将Dockerfile、testmysql.properties、testmysql.sh放在同一个目录下,进入该目录:
docker build -t centoshzb .
docker run -dit -e ROOT_PASS=hzbmir --name=centoshzb --net=host fd4fe4846b22
build了一个名叫centoshzb 的镜像,ID为fd4fe4846b22,-e ROOT_PASS=hzbmir就是运行起来的时候给容器里面的环境变量ROOT_PASS传了一个新的值hzbmir,如果不传,则还是原来的值chinacloudmir。
该容器运行后会调用容器里面的/root/hzbdir/testmysql.sh,主要作用就是用环境变量ROOT_PASS的值来修改testmysql.properties里面的rootpass的值。
当环境变量很多的时候,用-e来传值非常不方便,这时候可以用 --env-file来传入一个环境变量文件,比如有一个环境变量文件envfile内容如下:
ROOT_PASS=huacloudhuacloud
ROOT_USER=hzb
运行容器:
docker run -dit --env-file=/root/mirfile/centosTestDockerfile/envfile --name=centoshzb --net=host fd4fe4846b22
docker 初始化执行.sh修改.properties文件的更多相关文章
- Mac下通过shell脚本修改properties文件
通过shell脚本替换属性文件中的某行记录 假设有如下属性文件 demo.properties user.name=test user.password=123456 ................ ...
- Java读取修改Properties文件
properties文件是我们经常需要操作一种文件,它使用一种键值对的形式来保存属性集. 无论在学习上还是工作上经常需要读取,修改,删除properties文件里面的属性. 本文通过操作一个prope ...
- maven 根据P参数值打包动态修改properties文件中值或一定properties
需求:由于最近开发clover项目 ,没有使用spring,更没有使用任何框架,而使用J2EE的web工程,所以连接ZK和MongoDB.Redis等服务器需用指定properties文件, 而目前公 ...
- 格式化MyEclipse代码(java、jsp、js)行的长度@修改java代码字体@修改Properties文件编码方式
每次用MyEclipse/Eclipse自带的快捷键Ctrl+shift+f格式化代码时,如果原来的一行代码大于80列,Eclipse就会自动换为多行.如果想格式化代码后不想让代码换行可以通过以下方式 ...
- 修改properties文件后系统运行异常
今天修改了项目的properties配置文件以后,运行会报异常,即使将内容改回,异常仍然存在.中间还会出现项目报错等问题,现将解决方法整理出来. 1.修改properties的打开方式,将打开方式从p ...
- shell 用环境变量的值修改properties文件
假设有如下属性文件 demo.properties user.name=test user.password=123456 ............................... 需求:先需要 ...
- Springboot中修改.properties文件为.yml文件时项目不能运行问题
可能很多小伙伴会考虑环境配置的问题,maven版本.idea版本什么的,其实没有必要 只要你之前.ies时能运行,那么环境配置就没有问题 不能运行的原因,一定是你的.yml文件的格式问题 .yml文件 ...
- java非web应用修改 properties/xml配置文件后,无需重启应用即可生效---自动加载
实现时主要使用Commons-Configuration.jar包,还需要commons-lang,disgestor,beanutils,collections等, package propFile ...
- 在Spring环境下存取properties文件…
Spring中PropertyPlaceholderConfigurer的使用 (1) 基本的使用方法是 classpath:/spring/include/dbQuery.properties 其中 ...
随机推荐
- hasura graphql pg 自定义函数的使用
hasura graphql 的安装可以参考相关项目 创建函数 数据表创建 CREATE TABLE sql_function_table ( id SERIAL PRIMARY KEY, inp ...
- LeetCode OJ - Best Time to Buy and Sell Stock
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/xiezhihua120/article/details/32939749 Say you have ...
- NUnit使用
NUnit是.net平台上使用得最为广泛的测试框架之一,本文将通过示例来描述NUnit的使用方法,并提供若干编写单元测试的建议和技巧,供单元测试的初学者参考. 继续下文之前,先来看看一个非常简单的测试 ...
- 利用IOS画图功能画出五角星,并且可以调整五角星的填充范围
我们要花的为一个黄色的五角星并且其中的填充黄色能够任意调整,比如只填满半个五角星,或者只填满一个角等等. 首先要重写DrawRect 方法,然后在这里实现我们的画图代码. - (void)drawRe ...
- MySQL查询结果写入到文件总结
Mysql查询结果导出/输出/写入到文件 方法一:直接执行命令: mysql> select count(1) from table into outfile '/tmp/test.txt'; ...
- django关于静态的信息的配置
今天搭建完,django后,访问 admin 发现 样式没有加载 需要搭建静态的配置 1 设置项目目录的静态目录 用来存放静态的文件 在setttings.py中 添加以下参数 在 STATIC_ ...
- asp.net利用QQ邮箱发送邮件,关键在于开启pop并设置授权码为发送密码
public static bool SendEmail(string mailTo, string mailSubject, string mailContent) { ...
- leetcode290
public class Solution { public bool WordPattern(string pattern, string str) { var list = str.Split(' ...
- PS7.0快捷键和使用技巧
选择工具:矩形.椭圆选框工具 [M]裁剪工具 [C]移动工具 [V]套索.多边形套索.磁性套索 [L]魔棒工具 [W] 编辑工具:修复画笔.修补工具 [J]画笔.铅笔工具 [B]橡皮图章.图案图章 [ ...
- Creating Self-Signed SSL Certificates
http://weblogic-wonders.com/weblogic/2011/05/25/ssl-configuration-for-weblogic-server/ http://m-butt ...