【Spring boot】Docker+Docker-compose实现部署

162 阅读1分钟

一、环境准备

二、发布

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项目的编译和发布