Docker java .jar将无法运行

时间:2016-05-18 15:08:33

标签: java docker

我正在尝试在Docker中运行我的Java游戏,但是当我尝试运行它时,我收到此错误信息 Error: Invalid or corrupt jarfile /usr/src/app/v0.0.6 - FINAL.jar

Dockerfile

# Base image
FROM java:8

#COPY . /usr/src/app
#WORKDIR /usr/src/app

# Get Code v0.0.6 from Github
ADD  ["https://github.com/JohnnyDeeee/Oils-Well/blob/master/Builds/v0.0.6/v0.0.6 - FINAL.jar", "/usr/src/app/"]

# DEBUG
RUN chmod +x "/usr/src/app/v0.0.6 - FINAL.jar"
RUN ls -al /usr/src/app

# Start the Game
CMD ["java", "-jar", "/usr/src/app/v0.0.6 - FINAL.jar"]

这就是我建造的方式 docker build -t oilswell-v0.0.6 .

并运行我的图像
docker run oilswell-v0.0.6

1 个答案:

答案 0 :(得分:1)

这是因为Github提供文件的方式,目前你正在从Github中提取这个页面......

https://github.com/JohnnyDeeee/Oils-Well/blob/master/Builds/v0.0.6/v0.0.6%20-%20FINAL.jar

如果您打开它,您将看到它不是您的JAR,而是在GIT存储库中显示JAR的页面。您实际需要的URL是......

https://github.com/JohnnyDeeee/Oils-Well/blob/master/Builds/v0.0.6/v0.0.6%20-%20FINAL.jar?raw=true

这将返回实际的JAR,而不是HTML页面。所以你的Dockerfile应该是这样的......

# Base image
FROM java:8

ADD ["https://github.com/JohnnyDeeee/Oils-Well/blob/master/Builds/v0.0.6/v0.0.6%20-%20FINAL.jar?raw=true", "/usr/src/app/"]
RUN chmod +x "/usr/src/app/v0.0.6 - FINAL.jar"

# Start the Game
CMD ["java", "-jar", "/usr/src/app/v0.0.6 - FINAL.jar"]