IDEA通过DockerFile部署Springboot项目到服务器

记录一下学习Docker遇到的坑

如果您在学习Docker的时候也遇到了以下类似问题,这篇文章可能会帮助到您!

docker exec: “java”: executable file not found in $PATH

Error: Invalid or corrupt jarfile /app/api.jar

Error: Unable to access jarfile /app.jar

1. 首先准备一个有JDK的镜像

创建镜像
步骤:
(1)创建目录

mkdir –p /usr/local/dockerjdk8

(2)下载jdk-8u231-linux-x64.tar.gz并上传到服务器(虚拟机)中的/usr/local/dockerjdk8目录

(3)在当前文件夹创建文件Dockerfile

vi Dockerfile

填写以下信息
这里最好复制,我刚开始就是输错了一个local,
导致一直报这个docker exec: "java": executable file not found in $PATH

#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER XIAOTIAN
#切换工作目录
WORKDIR /usr
RUN mkdir  /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk-8u231-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_231
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

(4)执行命令构建镜像

docker build -t='jdk1.8' .

注意后边的空格和点,不要省略

(5)查看镜像是否建立完成

docker images

2. 再IDEA搭建Springboot项目

(1) 新建项目(略)
(2) 配置POM文件

IDEA通过DockerFile部署Springboot项目到服务器_第1张图片

 
        app
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
            
                org.apache.maven.plugins
                maven-deploy-plugin
                
                    true
                
            
            
                com.spotify
                dockerfile-maven-plugin
                1.3.7
                
                    ${docker.repostory}/${project.artifactId}
                    latest
                
            
        
    

(3) 创建DockerFile文件

  1. 在项目根目录下创建一个Dockerfile文件
  2. 填写类似如下信息
FROM jdk1.8
MAINTAINER xiaotian
WORKDIR /
ADD target/app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]

我最开始的时候没写WORKDIR
Error: Unable to access jarfile /app.jar
就爆出了这个错误
这个问题是找不到app.jar
如果不指定工作目录可能是上传到别的目录了,这个具体我没有细看,
所以遇到了这个问题一定要检查自己的jar包是否在根目录下,或者后买你设置执行的时候指定目录执行

如果配置不正确还可能遇到这个问题,这个问题是说jar包是损坏的或者是无效的,或者说他根本就不是一个jar包,那你就要检查你打包时候的配置了,如果按我的这个配置,基本上是没有问题的
Error: Invalid or corrupt jarfile /app/api.jar

IDEA通过DockerFile部署Springboot项目到服务器_第2张图片
(4) 在IDEA上配置Dokcer

  1. 在导航条上找到Edit configurations,进入编辑
    IDEA通过DockerFile部署Springboot项目到服务器_第3张图片
  2. 依次选择以下
    IDEA通过DockerFile部署Springboot项目到服务器_第4张图片
  3. 修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service

其中ExecStart=后添加配置
‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock
修改后如下:
IDEA通过DockerFile部署Springboot项目到服务器_第5张图片

  1. 在IDEA上配置Docker连接到服务器
    IDEA通过DockerFile部署Springboot项目到服务器_第6张图片

  2. 设置Docker构造镜像和容器的参数

IDEA通过DockerFile部署Springboot项目到服务器_第7张图片
(5) 运行DockerFileDemo

运行之后可以看到创建的镜像和容器
IDEA通过DockerFile部署Springboot项目到服务器_第8张图片
最后我们查看log
IDEA通过DockerFile部署Springboot项目到服务器_第9张图片
我们的jar就成功在镜像上启动了
谢谢大家!
在此过程中遇到什么问题,欢迎留言!

你可能感兴趣的:(Docker,开发环境搭建,DockerFile,Doker,IDEA通过Docker部署)