K8S中运行个性化tomcat
tomcat镜像制作规划
JDK基础镜像制作
root@k8s-master01:~# mkdir -p /stj-soft/dockerfile/web/jdk-8u221
rw-r--r-- 1 root root 130 Jan 11 21:50 build-command.sh
-rw-r--r-- 1 root root 474 Jan 11 21:38 Dockerfile
-rw-r--r-- 1 root root 195094741 Oct 18 11:40 jdk-8u221-linux-x64.tar.gz
-rw-r--r-- 1 root root 172 Jan 11 21:47 jdk.sh
Dockerfile内容
root@k8s-master01:/stj-soft/dockerfile/web/jdk-8u221# vim Dockerfile
# 拉取基础镜像
FROM harbor.stangj.net/web/centos-base:7.9.2009
# 设置作者信息
LABEL maintainer "tanghao 282658807**@qq.com"
# 上传tar包
ADD jdk-8u221-linux-x64.tar.gz /usr/local/src/
# 做软连接
RUN ln -sv /usr/local/src/jdk1.8.0_221 /usr/local/jdk
# 上传环境变量文件
ADD jdk.sh /etc/profile.d/
# 设置环境变量
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin
jdk.sh 内容
root@k8s-master01:/stj-soft/dockerfile/web/jdk-8u221# cat jdk.sh
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
build-command脚本
root@k8s-master01:/stj-soft/dockerfile/web/jdk-8u221# vim build-command.sh
#!/bin/bash
docker build -t harbor.stangj.net/pub-images/jdk-base:8.221 .
docker push harbor.stangj.net/pub-images/jdk-base:8.221
执行构建jdk镜像
root@k8s-master01:/stj-soft/dockerfile/web/jdk-8u221# bash build-command.sh
tomcat基础镜像制作
tomcat基础镜像文件列表
root@k8s-master01:~# mkdir -p /stj-soft/dockerfile/web/tomcat
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# ll
-rw-r--r-- 1 root root 10523269 Mar 30 2021 apache-tomcat-8.5.65.tar.gz
-rw-r--r-- 1 root root 0 Jan 11 21:25 build-command.sh
-rw-r--r-- 1 root root 0 Jan 11 21:25 Dockerfile
-rw-r--r-- 1 root root 0 Jan 11 21:57 tomcat.sh
Dockerfile内容
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# cat Dockerfile
# 拉取JDK镜像
FROM harbor.stangj.net/pub-images/jdk-base:8.221
# 设置作者信息
LABEL maintainer "tanghao 282658807**@qq.com"
# 创建目录
RUN mkdir -pv /apps /data/tomcat/webapps /data/tomcat/logs
# 上传tar包
ADD apache-tomcat-8.5.65.tar.gz /apps
# 做软连接创建启动用户
RUN useradd tomcat && ln -sv /apps/apache-tomcat-8.5.65 /apps/tomcat && chown -R tomcat:tomcat /apps /data
# 上传环境变量文件
ADD tomcat.sh /etc/profile.d/
# 设置环境变量
ENV TOMCAT_HOME /apps/tomcat
ENV PATH $JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
tomcat.sh 内容
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# cat tomcat.sh
export TOMCAT_HOME=/apps/tomcat
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
build-command脚本
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# cat build-command.sh
#!/bin/bash
docker build -t harbor.stangj.net/pub-images/tomcat-base:v8.5.65 .
docker push harbor.stangj.net/pub-images/tomcat-base:v8.5.65
执行构建tomcat镜像
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# bash build-command.sh
验证tomcat服务
root@k8s-master01:/stj-soft/dockerfile/web/tomcat# docker run --rm -it -p 9098:8080 harbor.stangj.net/pub-images/tomcat-base:v8.5.65 bash
[root@1351264f3a07 ~]# su - tomcat -c '/apps/tomcat/bin/catalina.sh run'
-
访问页面
tomcat业务镜像app1制作
业务镜像文件列表
root@k8s-master01:~# mkdir -p /stj-soft/dockerfile/web/tomcat/app1
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# touch Dockerfile
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# touch build-command.sh
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# mkdir myapp
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# touch run_tomcat.sh
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# chmod +x run_tomcat.sh
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# echo '<h1>myapp-app1<h1/>' > app1/index.jsp
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# tar zcf app1.tar.gz app1/*
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# ll
-rw-r--r-- 1 root root 0 Jan 11 22:31 build-command.sh
-rw-r--r-- 1 root root 0 Jan 11 22:31 Dockerfile
drwxr-xr-x 2 root root 23 Jan 11 22:33 app1/
-rw-r--r-- 1 root root 139 Jan 11 22:34 app1.tar.gz
-rwxr-xr-x 1 root root 0 Jan 11 22:32 run_tomcat.sh*
Dockerfile内容
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# cat Dockerfile
# 拉取tomcat镜像
FROM harbor.stangj.net/pub-images/tomcat-base:v8.5.65
# 设置作者信息
LABEL maintainer "tanghao 282658807**@qq.com"
# 上传启动脚本
ADD run_tomcat.sh /apps/tomcat/bin/run_tomcat.sh
# 上传代码
ADD app1.tar.gz /apps/tomcat/webapps/
# 修改权限
RUN chown tomcat:tomcat /apps -R
# 暴露端口
EXPOSE 8080 8009
# 运行脚本
CMD ["/apps/tomcat/bin/run_tomcat.sh"]
run_tomcat.sh内容
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# cat run_tomcat.sh
#!/bin/bash
su - tomcat -c '/apps/tomcat/bin/catalina.sh start'
tail -f /etc/hosts
build-command脚本
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# cat build-command.sh
#!/bin/bash
docker build -t harbor.stangj.net/pub-images/tomcat:app1 .
docker push harbor.stangj.net/pub-images/tomcat:app1
执行构建tomcat-app1镜像
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# bash build-command.sh
验证tomcat-app1服务
root@k8s-master01:/stj-soft/dockerfile/web/tomcat/app1# docker run --rm -it -p 9080:8080 harbor.stangj.net/pub-images/tomcat:app1
创建相应目录
root@k8s-master01:~# mkdir -p /stj-soft/yaml/tomcat-app1
tomcat-app1业务yaml文件
root@k8s-master01:~# cd /stj-soft/yaml/tomcat-app1
root@k8s-master01:/stj-soft/yaml/tomcat-app1# vim tomcat-app1.yaml
kind: Deployment
apiVersion: apps/v1
metadata:
labels:
app: tomcat-stj-deployment-label
name: tomcat-deployment
namespace: stj-ns
spec:
replicas: 1
selector:
matchLabels:
app: tomcat-stj-selector
template:
metadata:
labels:
app: tomcat-stj-selector
spec:
containers:
- name: tomcat-stj-container
image: harbor.stangj.net/pub-images/tomcat:app1
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
name: http
resources:
limits:
cpu: 2
memory: 2Gi
requests:
cpu: 500m
memory: 512Mi
readinessProbe:
httpGet:
path: /app1/index.jsp
port: 8080
initialDelaySeconds: 5
periodSeconds: 3
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
livenessProbe:
httpGet:
path: /app1/index.jsp
port: 8080
initialDelaySeconds: 5
periodSeconds: 3
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
---
kind: Service
apiVersion: v1
metadata:
labels:
app: tomcat-stj-label
name: tomcat-stj-svc
namespace: stj-ns
spec:
type: NodePort
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8080
nodePort: 40011
selector:
app: tomcat-stj-selector
应用tomcat的yaml文件
root@k8s-master01:/stj-soft/yaml/tomcat-app1# kubectl apply -f tomcat-app1.yaml









文章评论