加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell yaml dockerfile

发布时间:2020-12-16 03:50:52 所属栏目:安全 来源:网络整理
导读:字符串分割成数组 #!/bin/bashstr="192.168.0.152:3306/mysql?192.168.0.153:3306/mysql?192.168.0.154:3306/mysql?192.168.0.155:3306/mysql"OLD_IFS="$IFS" IFS="?" arr=($str) IFS="$OLD_IFS" for s in ${arr[@]} do echo "$s" done docker清理 https://g

字符串分割成数组

#!/bin/bash
str="192.168.0.152:3306/mysql?192.168.0.153:3306/mysql?192.168.0.154:3306/mysql?192.168.0.155:3306/mysql"
OLD_IFS="$IFS" 
IFS="?" 
arr=($str) 
IFS="$OLD_IFS" 
for s in ${arr[@]} 
do 
    echo "$s" 
    done

docker清理

https://github.com/HardySimpson/docker-cleanup

tomcat环境初始化

init_env.sh
#!/bin/bash

groupadd -r app && useradd -r -g app app
mkdir -p /home/app/install
yum install -y unzip net-tools java-1.8.0-openjdk openssh-server openssh-client openssh wget vim git lrzsz crontabs
echo -e "n" >> /root/.vimrc
echo "set encoding=utf-8" >> /root/.vimrc
echo "set termencoding=utf-8" >> /root/.vimrc
echo "set fileencodings=utf-8,gbk,latin1" >> /root/.vimrc

python3初始化

init_python3.sh
#!/bin/bash

yum -y install zlib-devel bzip2-devel openssl-devel
ncurses-devel sqlite-devel readline-devel tk-devel
gdbm-devel db4-devel libpcap-devel xz-devel
cd /usr/local/src/
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
mkdir -p /usr/local/python3
tar -zxvf Python-3.6.5.tgz
cd Python-3.6.5
./configure --prefix=/usr/local/python3
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

cat >> /root/.bash_profile <<EOF
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
export PATH
EOF

source ~/.bash_profile
python3 -V

镜像构建[版本:青铜] k8s_build_image.sh

DOCKERFILE
#基础镜像
FROM tomcat:latest

定义时区

ENV TZ Asia/Shanghai

定义项目名

ENV PROJECT_NAME app

定义项目工作目录

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

把解压后的项目包放入项目路径下

COPY $PROJECT_NAME $WORK_PATH_ROOT/$PROJECT_NAME

删除解压包内的配置文件

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
&& 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/

SHELL:

!/bin/bash

package_name=$1

if [ $# != 1 ] ; then
echo -e "n33[31mUSAGE: $0 package_name33[0m"
echo -e "n33[31m e.g.: $0 app-1.2.3.war33[0mn"
exit 1;
fi

fileserver_url='http://192.168.1.1/deploy'
app_name=app
version=echo $package_name |cut -d- -f 2|sed 's/.war$//g'
echo $package_name

rm -rf $app_name
wget -c $fileserver_url/$app_name/$package_name && unzip $package_name -d $app_name
docker build -t tomcat/$app_name:$version .

rm -f $package_name

docker tag tomcat/app:$version 192.168.1.2:5000/ims:$version
docker push 192.168.1.2:5000/ims:$version

K8_master 启动项目 [版本:青铜]

#!/bin/bash

image_url=$1

if [ $# != 1 ] ; then
echo -e "n33[31mUSAGE: $0 image_url33[0m"
echo -e "n33[31m e.g.: $0 app:1.2.333[0mn"
exit 1;
fi

registry_url='192.168.1.2:5000'
project_name=app
expose_port=8080

kubectl run $project_name --image=$registry_url/$image_url --port=$expose_port # 部署容器
kubectl expose deployment $project_name --type='NodePort' --port=$expose_port # 对外映射
kubectl get pods -o wide # 查看pod
kubectl get services/$project_name # 查看服务
kubectl describe services/$project_name # 查看详细映射
kubectl get deployments -o wide # 查看应用信息

k8s操作流程[版本:白银]

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 "n33[31mUSAGE: $0 package_name33[0m"
echo -e "n33[31m e.g.: $0 app-1.2.3.war33[0mn"
exit 1;
fi

wget -c $fileserver_url/$app_name/$package_name
is_exist=echo $?

if [ $is_exist != 0 ]; then
echo -e "n33[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:
    • containerPort: 8080

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读