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文件

![(https://img-blog.csdnimg.cn/2019121110282630.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpYW90aWFuX2Rldg==,size_16,color_FFFFFF,t_70)

 <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!--docker maven插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <repository>${docker.repostory}/${project.artifactId}</repository>
                    <tag>latest</tag>
                </configuration>
            </plugin>
        </plugins>
    </build>

(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

在这里插入图片描述
(4) 在IDEA上配置Dokcer

  1. 在导航条上找到Edit configurations,进入编辑
    在这里插入图片描述
  2. 依次选择以下
    在这里插入图片描述
  3. 修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service

其中ExecStart=后添加配置
‐H tcp://0.0.0.0:2375 ‐H unix:///var/run/docker.sock
修改后如下:
在这里插入图片描述

  1. 在IDEA上配置Docker连接到服务器
    在这里插入图片描述

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

在这里插入图片描述
(5) 运行DockerFileDemo

运行之后可以看到创建的镜像和容器
在这里插入图片描述
最后我们查看log
在这里插入图片描述
我们的jar就成功在镜像上启动了
谢谢大家!
在此过程中遇到什么问题,欢迎留言!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaotian_dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值