title: 服务镜像化操作手册--以及kettle docker化部署0…0
tags: 操作手册,linux系统下操作
grammar_cjkRuby: true

spring boot docker构建

1 将一个简单实例构建成docker服务.

	1.在sts,或者idea等其他编译器下将项目打包成jar包.
	2.创建一个新的目录(非必需),将打包好的jar包拷贝到当前的目录下.
	3.在当前目录下创建Dockerfile文件,操作如下
		touch Dockerfile
		vim Dockerfile
		## 内容如下:
			FROM frolvlad/alpine-oraclejdk8:slim 环境
			VOLUME /data/docker/dy/config
			ADD docker-yun.jar app.jar
			ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Dockerfile详情参考网址

4.开始构建镜像,注意最后的 .,代表着构建当前目录下的项目
	docker build -t dyun5 .
5. 查看镜像
	[docker@m2 ~]$ docker images
	REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
	dyun5                                                  latest              266ba34fceb8        About an hour ago   182MB
6. 开始启动docker镜像,使用宿主目录中的配置文件进行启动,将5002端口映射成8080 -d 后台运行
	docker run --name dyun5s -v /data/docker/dy/config/application.yml:/config/application.yml -p 8080:5002 -d dyun5
7. 查看启动的镜像,如下表示镜像已经启动成功
	[docker@m2 dy]$ docker ps
	CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
	c0d076b1ea32        dyun5               "java -Djava.securit…"   37 minutes ago      Up 25 seconds       0.0.0.0:8080->5002/tcp   dyun5s
8.访问
	[docker@m2 ~]$  curl http://localhost:8080/ask/contend -X POST -H "Content-type=application" -d '{}'
	{"rp":"谢谢进行访问","contend":"你是最帅的吗?请回答:默认回答"} 
9.就此spring boot docker化阶段部分完成

ketter docker构建

将kettle 脚本放在 Dockerfile 同一目录下.

Dockerfile内容如下:

FROM centos:7 ##官方镜像
ADD solr_update solrup
ENV LANG C.UTF-8
ENTRYPOINT ["/solrup/start_job.sh"] 执行的脚本

使用上述的构建方法进行镜像的构建

这里kettle的启动脚本需要引入环境变量(结合docker的启动命令)

export JAVA_HOME=/jdk
export PATH=$JAVA_HOME/bin:$PATH
kettle_home=/kettle
...省略...
val_sh=$kettle_home'/kitchen.sh  -file=/solrup/solr_update_job.kjb -level=info  -logfile=/log/solr.log'
echo '执行的脚本 >>>:' $val_sh
eval $val_sh

docker的启动命令:

docker run --name solrx -v /home/test/data-integration:/kettle -v /data/jdk/jdk:/jdk -v /data/docker/log:/log solrx

-v 将宿主机的jdk,kettle的安装目录,日志路径挂载到容器中,kettle启动脚本中的环境变量使用的目录使用映射的路径

kettle中尽量避免使用中文.毕竟省心一些

回复:

### Dockerfile

FROM centos:7 ##官方centos7镜像
ADD solr_update solrup
ADD $JAVA_HOME /jdk  #加入jdk环境
ADD $KETTLE_HOME /kettle #加入kettle环境

ENV LANG C.UTF-8
ENTRYPOINT ["/solrup/start_job.sh"] #执行的脚本


### start_job.sh

export JAVA_HOME=/jdk
export PATH=$JAVA_HOME/bin:$PATH
kettle_home=/kettle
...省略...
val_sh=$kettle_home'/kitchen.sh  -file=/solrup/solr_update_job.kjb -level=info  -logfile=/log/solr.log'
echo '执行的脚本 >>>:' $val_sh
eval $val_sh

## 构建镜像
docker build -t solrx . ## 在Dockerfile目录下

##启动镜像
docker run --name solrx -v /data/docker/log:/log solrx

## 目录结构
solrUp/
├── Dockerfile
└── solr_update
    ├── solr_update_job.kjb
    ├── start_job.sh
    ├── zhuanhuan01.ktr
    └── 触发solr更新.ktr

时区:-e TZ=“Asia/Shanghai”

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐