001-init-env.dockerfile
FROM centos:latest
MAINTAINER bang
ENV REFRESHED_AT 2018-12-26
ENV TZ Asia/Shanghai
WORKDIR /usr/local
RUN mkdir jdk && mkdir tomcat
ADD jdk-8u91-linux-x64.tar.gz /usr/local/jdk
ADD tomcat-cpy-8.0.46.tar.gz /usr/local
ENV JAVA_HOME=/usr/local/jdk/jdk1.8.0_91
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
&& yum install -y epel-release && yum install -y redis
&& chmod +x /usr/local/tomcat/bin/catalina.sh
002-app.dockerfile
基础镜像
FROM cpy/env:2.3.1
定义项目名
ENV PROJECT_NAME ims
定义项目工作目录
ENV WORK_PATH_ROOT /usr/local/tomcat/webapps
定义配置文件目录
ENV WORK_PATH_CONF $WORK_PATH_ROOT/$PROJECT_NAME/WEB-INF/classes
定义要替换的配置文件名:jdbc.properties
ENV JDBC_CONF jdbc.properties
定义要替换的配置文件名:redis.properties
ENV REDIS_CONF redis.properties
定义要替换的配置文件名:logback.xml
ENV LOG_CONF logback.xml
定义要替换的配置文件名:system.properties
ENV SYS_CONF system.properties
把解压后的项目包放入项目路径下
ADD tomcat-wm-8.0.46.tar.gz /usr/local/
COPY $PROJECT_NAME $WORK_PATH_ROOT/$PROJECT_NAME
删除解压包内的配置文件
RUN rm $WORK_PATH_CONF/$JDBC_CONF
&& rm $WORK_PATH_CONF/$REDIS_CONF
&& rm $WORK_PATH_CONF/$LOG_CONF
&& rm $WORK_PATH_CONF/$SYS_CONF
复制配置文件
COPY ./$JDBC_CONF $WORK_PATH_CONF/
COPY ./$REDIS_CONF $WORK_PATH_CONF/
COPY ./$LOG_CONF $WORK_PATH_CONF/
COPY ./$SYS_CONF $WORK_PATH_CONF/
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]
003-build_app.sh
!/bin/bash
package_name=$1
fileserver_url='http://192.168.1.2/deploy'
app_name=app
version=echo $package_name |cut -d- -f 2|sed 's/.war$//g'
echo -e 'n'$package_name
if [ $# != 1 ] ; then
echo -e "n 33[31mUSAGE: $0 package_name 33[0m"
echo -e "n 33[31m e.g.: $0 app-1.2.3.war 33[0mn"
exit 1;
fi
wget -c $fileserver_url/$app_name/$package_name
is_exist=echo $?
if [ $is_exist != 0 ]; then
echo -e "n 33[31m[Warnning] This package does not exist... 33[0mn"
exit 1
fi
rm -rf $app_name
unzip $package_name -d $app_name
docker build -t tomcat/$app_name:$version .
rm -f $package_name
docker tag tomcat/ims:$version 192.168.1.1:5000/ims:$version
docker push 192.168.1.1:5000/ims:$version
004-app.yaml
apiVersion: v1
kind: Deployment
metadata:
name: deployment-app-2
spec:
replicas: 2
template:
metadata:
labels:
app: app-2
spec:
restartPolicy: Always
containers:
- name: app-2
image: 192.168.1.1:5000/ims:1.2.3
ports: