美文网首页
docker (Dockerfile)部署springboot项

docker (Dockerfile)部署springboot项

作者: Suncy | 来源:发表于2019-11-07 16:34 被阅读0次
    # 拉取镜像,我使用的基础镜像为openjdk-8-jre-alpine ( alpine最小体积linux操作系统,jdk8 )
    docker pull openjdk -8-jre-alpine
    
    # 自行选择部署目录,我的目录是/srv/docker/webapp
    mkdir -p /srv/docker/webapp
    
    # 在/srv/docker/webapp下新建文件Dockerfile
    vim Dockerfile
    
    # Dockerfile文件内容如下:
    
    # 基础镜像
    FROM openjdk:8-jre-alpine
    
    #  在镜像中创建/usr/local/myapp目录 (以上镜像进入目录后会直接在根目录下)
    RUN mkdir  /usr/local/myapp
    
    # 复制上下文当前路径下的smarthome_backend.jar 至 镜像/usr/local/myapp下(此处构建时候找的不是宿主机的路径,
    # 而是docker引擎上下文中的路径,所以需要将smarthome_backend.jar复制到Dockerfile所在目录下,不然会找不到路径)
    COPY smarthome_backend.jar /usr/local/myapp
    
    # 切换至镜像的 /usr/local/myapp目录(由于每一个RUN 命令都会启动一个新的容器,故,此处使用WORKDIR命令)
    WORKDIR  /usr/local/myapp
    
    # 在容器中配置环境变量:SPRING_PROFILES_ACTIVE=Test (配置该变量后,项目配置会优先使用当前变量对应的配置文件)
    ENV SPRING_PROFILES_ACTIVE Test
    
    # 容器中执行命令 java -jar smarthome_backend.jar 启动项目
    CMD ["java","-jar","smarthome_backend.jar"]
    
    
    图片.png
    # 在本机中项目的根目录下编写脚本,内容如下:
    
    # 打jar包
    ./gradlew bootjar &&
    
    # 复制jar包到zls服务器的webapp目录
    scp build/libs/smarthome_backend.jar root@zls:/srv/docker/webapp &&
    
    # 1.连接到zls服务器,2.切换到Dockerfile所在目录,3.删除名为myapp的docker容器并且删除名为myapp的镜像,4.执行构建myapp镜像命令,5.启动一个容器,命名为myapp
    ssh root@zls 'cd /srv/docker/webapp && docker rm -f myapp && docker rmi -f myapp && 
    docker build -t myapp . && docker run -it --name myapp -p 12321:12321 -d myapp'
    
    图片.png
    图片.png

    相关文章

      网友评论

          本文标题:docker (Dockerfile)部署springboot项

          本文链接:https://www.haomeiwen.com/subject/lzevbctx.html