问题起因

最近两天在使用docker把项目的jar包打成镜像,Dockerfile文件的内容如下

FROM java:8
ADD mhxysy-0.0.1-SNAPSHOT.jar mhxysy.jar
EXPOSE 8080
CMD java ‐jar mhxysy.jar

但是通过docker运行镜像的时候报错了

Error: Could not find or load main class ‐jar

如图

在portainer上编写docker-compose.yml启动也报一样的错

version: "3"

services:
  mhxysy:
    container_name: mhxysy
    image: mhxysy-20230927hyl
    ports:
      - 8080:8080

如图,创建完stack之后,点击部署的时候是部署成功了,但是容器启动失败了

错误日志

奇怪的就是,通过命令启动jar包的时候能正常启动。

问题分析

遇到这种诡异的问题,推测大概率是Dockerfile文件有问题,可能包含了一些肉眼不可见的特殊字符。

解决方案

解决这个问题的最好方法就是重新写一遍Dockerfile文件里的内容,不要复制/粘贴。然后删除生成的镜像,重新打包一次。

docker build -t mhxysy-20230927hyl .

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐