【问题标题】:Steps to push simple Java rest api to Docker using VSTS CI使用 VSTS CI 将简单的 Java REST API 推送到 Docker 的步骤
【发布时间】:2018-07-23 11:02:04
【问题描述】:

我创建了简单的休息端点,它将返回 Hello world 以进行 Get 操作。我已经创建了 docker 文件来推送

FROM openjdk:8     

RUN mkdir -p /usr/local/app

WORKDIR /usr/local/app

COPY /SpringRest/target/docker-spring.jar /usr/local/app/docker-spring.jar

EXPOSE 8085

ENTRYPOINT ["java","-jar","docker-spring.jar"]

当我尝试使用 VSTS 运行它时,我收到以下错误:

Status: Downloaded newer image for openjdk:8
2018-07-23T10:51:00.4948836Z  ---> 8c80ddf988c8
2018-07-23T10:51:00.4966564Z Step 2/6 : RUN mkdir -p /usr/local/app

2018-07-23T10:51:14.7731002Z  ---> Running in 2242c1baadde
2018-07-23T10:51:16.5140472Z Removing intermediate container 2242c1baadde
2018-07-23T10:51:16.5163574Z  ---> b8dba30e6e9c
2018-07-23T10:51:16.5179644Z Step 3/6 : WORKDIR /usr/local/app


2018-07-23T10:51:17.8398811Z Removing intermediate container 47a1a4cf9a23
2018-07-23T10:51:17.8418756Z  ---> 9fc455c476e0


2018-07-23T10:51:17.8437188Z Step 4/6 : COPY /SpringRest/target/docker-spring.jar /usr/local/app/docker-spring.jar
2018-07-23T10:51:17.8457664Z ***COPY failed: stat /var/lib/docker/tmp/docker-builder484497191/SpringRest/target/docker-spring.jar: no such file or directory
2018-07-23T10:51:17.8581142Z ##[error]COPY failed: stat /var/lib/docker/tmp/docker-builder484497191/SpringRest/target/docker-spring.jar: no such file or directory***
2018-07-23T10:51:17.8659023Z ##[error]/usr/local/bin/docker failed with return code: 1

我错过了任何步骤吗?请帮帮我

【问题讨论】:

  • COPY 的 dest 应该是一个目录,我想。试试这个:COPY /SpringRest/target/docker-spring.jar /usr/local/app/
  • 还要验证源文件确实存在于该位置(并且该用户可以读取)。你真的有顶级目录SpringRest吗?不知怎的,我不这么认为。
  • 是的,我有顶级目录 SpringRest。我在其中有 DockerFile、Source 和 Target 文件夹
  • Dockerfile 和 Jar 文件是否需要放在同一个文件夹中才能按预期工作?

标签: docker azure-devops dockerfile azure-pipelines


【解决方案1】:

试试这个:

FROM openjdk:8     

RUN mkdir -p /usr/local/app

WORKDIR /usr/local/app

RUN cd /SpringRest/target

COPY docker-spring.jar /usr/local/app/

EXPOSE 8085

ENTRYPOINT ["java","-jar","docker-spring.jar"]   

FROM openjdk:8     

WORKDIR /SpringRest/target

EXPOSE 8085

ENTRYPOINT ["java","-jar","docker-spring.jar"]  

【讨论】:

  • /usr/local/app 中还有其他内容吗?我的意思是现在你可以将 /SpringRest/target 作为你的 WORKDIR
  • @Girish 既然你的问题解决了,你可以标记答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多