1.背景
最近用docker部署了一个项目,没有用流水线之类的工具,每次更新代码后就会重复流程,打包->上传代码->停掉原来的服务->删除原来的容器->删除原来的镜像->build新的镜像->启动服务。流程虽然很简单,搞多了也烦躁,于是从打包上传之后的流程写了个脚本一键部署。
2.脚本
#!/bin/bash
service_name="okex-server"
port=6060
echo "准备一键启动$service_name ......"
container_info=`docker ps | grep $service_name`
container_id=${container_info:0:12}
echo "获取到容器ID $container_id,准备停止服务..."
docker stop $container_id
echo "$service_name服务已停止,准备删除容器..."
docker rm $container_id
echo "容器已删除,准备删除镜像..."
docker rmi $service_name:latest`
echo "镜像已删除,准备创建新的镜像..."
docker build -t $service_name .
echo "镜像创建完成,准备启动..."
docker run -d -p $port:$port $service_name
echo "$service_name服务启动完成"