「掘金者说」推送私服脚本小记

865 阅读1分钟

私服

「掘金笔记」Docker推送私服Harbor

结构

pig-parent
├── pig-auth -- oauth-server[3000]
     ├── dubbo 文件夹
          ├── pig-auth.jar 工程boot
          ├── start.sh 启动脚本
     ├── buid.sh 脚本shell
     ├── Dockerfile 容器脚本
     ├── images.txt 镜像记录

文件

start.sh

#!/bin/bash --login
#pid=`ps aux|grep gateway|awk '{print $2}'`
echo '127.0.0.1 pig-mysql' >> /etc/hosts
echo '127.0.0.1 pig-redis' >> /etc/hosts
echo '127.0.0.1 pig-minio' >> /etc/hosts
pid=`lsof -i:3000 | awk '{print $2}'`
if [ -n "$pid" ] ;then
   kill -9 $pid
   echo ‘关闭$pid’
   sleep 5
fi
#echo 'pig4cloud平台-认证服务启动!'
exec java  ${JAVA_OPTS} -jar pig-auth.jar

#exec java ${JAVA_OPTS} -Dpinpoint.applicationName=pig-auth -jar *.jar --spring.profiles.active=dev

buid.sh

#!/bin/sh

name=pig-auth

ver=0.0.1

NO=$1

#REG=registry.cn-shanghai.aliyuncs.com/pig/
REG=pig.harbor:8080/pig/

echo ${REG}${name}:${ver}.$(date +%y%m%d).${NO}

docker build -t ${REG}${name}:${ver}.$(date +%y%m%d).${NO} .

if [ $? -eq 1 ];then
  echo 'build fail'
  exit 1
fi

docker push ${REG}${name}:${ver}.$(date +%y%m%d).${NO}

if [ $? -eq 1 ];then
  echo 'push fail'
  exit 1
fi

docker images |grep ${REG}${name}

docker rmi ${REG}${name}:${ver}.$(date +%y%m%d).${NO}

echo "images=${REG}${name}:${ver}.$(date +%y%m%d).${NO}" > images.txt

#sed -i "s#{image}#${REG}${name}:${ver}.$(date +%y%m%d).${NO}#" uat/${name}.yaml
#
#if [ $? -eq 1 ];then
#  echo 'sed fail'
#  exit 1
#fi
#kubectl apply -f uat/
#if [ $? -eq 1 ];then
#  echo 'kubectl apply fail'
#  exit 1
#fi

Dockerfile

# 格式为FROM image或FROM image:tag,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令。
FROM pig_java:1.8.0

# 格式为MAINTAINER user_name user_email,指定维护者信息。
MAINTAINER huangbosbos@gmail.com

# 格式为RUN command或 RUN,在shell终端中运行命令;使用exec执行,指定其他运行终端使用RUN。
# RUN mkdir -p /pig-auth

# 复制本地主机dubbo目录或文件到容器的/opt/dubbo目录,/opt/dubbo不存在时会自动创建。
COPY dubbo /opt/dubbo

# 为后续的RUN CMD ENTRYPOINT指定配置工作目录,可以使用多个WORKDIR指令,若后续指令用得是相对路径,则会基于之前的命令指定路径。
WORKDIR /opt/dubbo

# 指令告诉Docker服务器暴露端口,供容器外部连接使用。
# EXPOSE 3000

# 为后续的RUN CMD ENTRYPOINT指定配置工作目录,可以使用多个WORKDIR指令,若后续指令用得是相对路径,则会基于之前的命令指定路径。
ENTRYPOINT ["/bin/bash","-c","source /opt/dubbo/start.sh"]

images.txt

images=pig.harbor:8080/pig/pig-auth:0.0.1.200118.1