私服
「掘金笔记」Docker推送私服Harbor
结构
pig-parent
├── pig-auth
├── 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
#
# 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