一、环境准备
二、发布
Dockerfile
FROM anapsix/alpine-java:8
MAINTAINER testuser
VOLUME /tmp
ADD ./target/auth-0.0.1-SNAPSHOT.jar app.jar
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo 'Asia/Shanghai' >/etc/timezone
EXPOSE 8532
ENTRYPOINT ["java","-jar","-Duser.timezone=Asia/Shanghai","app.jar"]
docker-compose.yml
version: '2.1'
services:
auth-service:
network_mode: "host" ##docker网络模式,host表示使用宿主机的网络,无须端口映射,解决Eureka注册时ip地址问题,服务之间调用
build:
context: ./
dockerfile: ./Dockerfile
image: auth-service
restart: always
container_name: auth-service_1
ports:
- "8531:8531"
volumes:
- "/home/user/log/:/var/log/app/"
- "/etc/localtime:/etc/localtime"
jenkins发布脚本
#!/bin/sh
cd /home/user/hzx/auth
git checkout master
git pull
cd auth-service
echo "-----build project"
mvn clean install
#echo "----stop and rm docker container"
#containerId=$(sudo docker ps --filter ancestor=auth-service -q)
#if [ ! -n "$containerId" ]; then
#echo "containerId IS NULL"
#else
#sudo docker stop ${containerId} ## 停止容器
#sudo docker rm ${containerId} ## 删除容器
#fi
#imagesId=$(sudo docker images auth-service -q)
#if [ ! -n "$imagesId" ]; then
#echo "imagesId IS NULL"
#else
#sudo docker rmi -f ${imagesId} ## 删除镜像
#fi
#echo "----build docker images and start"
## 参数--build会自动删除镜像和容器重启
sudo docker-compose up -d --build ## 通过docker-compose实现springboot项目的编译和发布