Dockerfile 安装第三方依赖插件软件 ,以及构建镜像 #基础镜像,如果本地仓库没有,会从远程仓库拉取 openjdk:8

FROM docker.io/centos:centos7

#暴露端口

EXPOSE 9311

# 避免centos中文乱码

ENV LANG en_US.utf8

#容器中创建工作目录

WORKDIR /usr/local/plugin

#容器中创建子目录

RUN mkdir -p /usr/local/plugin/data && mkdir -p /usr/local/plugin/Echart

# 构建容器时 复制解压 echarts phantomjs jdk 安装第三方插件软件 到容器

ADD jdk-8u202-linux-x64.tar.gz ./

ADD echarts-convert.tar.gz ./

ADD phantomjs-2.1.1-linux-x86_64.tar.bz2 ./

# 构建容器时 编译后的jar包copy到容器中创建到目录内

COPY realize-market-value.jar realize-market-value.jar

#COPY data/ ./data

# 构建容器时 安装phantomjs 依赖系统libfontconfig.so文件

RUN yum -y install fontconfig-devel

# 构建容器时 安装phantomjs 生成echart图片中文字体支持

RUN yum groupinstall 'fonts' -y

#配置环境变量

ENV JAVA_HOME=./jdk1.8.0_202

ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

ENV PATH=$JAVA_HOME/bin:$PATH

# 构建容器时 指定容器时区

RUN rm -f /etc/localtime \

&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \

&& echo "Asia/Shanghai" > /etc/timezone

# 启动容器时 要执行的命令

ENTRYPOINT ["java","-jar","-Dspring.profiles.active=server"]

# 启动容器时 启动 tomcat

CMD ["/usr/local/tomcat/apache-tomcat-8.5.27/bin/catalina.sh", "run"]

# 启动容器时 CMD的参数可以在镜像运行的时候被替换掉,并且成为ENTRYPOINT命令的参数

CMD ["realize-market-value.jar"]

 k8s 部署yaml 脚本配置,realize-market-value.yaml apiVersion: v1

kind: Service

metadata:

name: $IMG_NAME

namespace: rz-dt

labels:

app: $IMG_NAME

spec:

type: ClusterIP #NodePort

ports:

- name: tcp-9311-9311

port: 9311

protocol: TCP

targetPort: 9311

#nodePort: 31051 #service对外开放端口

selector:

app: $IMG_NAME

---

apiVersion: apps/v1

kind: Deployment #对象类型

metadata:

name: $IMG_NAME #名称

namespace: rz-dt

labels:

app: $IMG_NAME #标注

spec:

replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量

selector:

matchLabels:

app: $IMG_NAME

template:

metadata:

labels:

app: $IMG_NAME

spec:

containers: #docker容器的配置

- name: $IMG_NAME

image: rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/$IMG_NAME:$IMG_TAG # pull镜像的地址 ip:prot/dir/images:tag

imagePullPolicy: Always #pull镜像时机,

ports:

- containerPort: 9311 #容器对外开放端口,需与springboot配置文件一致

volumeMounts:

- name: time-config

mountPath: /etc/localtime

readOnly: true

- name: volume-logs

mountPath: /logs

subPath: logs

resources:

limits:

cpu: 500m

memory: 1Gi

requests:

cpu: 10m

memory: 50Mi

#从私有仓库拉取镜像凭证

imagePullSecrets:

- name: rz-dt-miyue-vpc

volumes:

- name: time-config

hostPath:

path: /usr/share/zoneinfo/Asia/Shanghai

- name: volume-logs

persistentVolumeClaim:

claimName: rz-dt-nas-volume-claim

centos配置kubectl客户端连接k8s集群,执行,sh test.sh测试环境发布k8s,sh real.sh生产环境  echo "开始制作镜像..."

image_name=realize-market-value

image_tag=`date +%Y-%m-%d-%H-%M-%S` #_%H%M

echo "当前时间版本号:$image_tag"

docker build -t ${image_name}:${image_tag} .

echo "制作镜像成功!"

echo "登录"

sudo docker login --username=aliyun03985131512 rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com --password=123

echo "镜像最新版本提交"

docker tag ${image_name}:${image_tag} rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/${image_name}:${image_tag}

docker push rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt/${image_name}:${image_tag}

echo "k8s一键部署"

export IMG_TAG=${image_tag}

export IMG_NAME=${image_name}

envsubst < ${image_name}.yaml | kubectl --kubeconfig ~/.kube-rz/config apply -f -

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: