在下面的Dockerfile中,我试图将jar文件从主机上的某个位置复制到容器中,但是似乎Docker不喜欢它,因为我想我丢失了一些东西。这是我的Dockerfile:
FROM anapsix/alpine-java:jdk8
MAINTAINER joesan
ENV SBT_VERSION 0.13.15
ENV CHECKSUM 18b106d09b2874f2a538c6e1f6b20c565885b2a8051428bd6d630fb92c1c0f96
ENV APP_NAME my-app
ENV PROJECT_HOME /opt/apps
RUN mkdir -p $PROJECT_HOME/$APP_NAME
# Copy the jar file
COPY ./target/scala-*/my-app-*.jar $PROJECT_HOME/$APP_NAME
# Copy the database file
COPY .my-db.mv.db $PROJECT_HOME/$APP_NAME
# Run the application
CMD ["$PROJECT_HOME/$APP_NAME java -Denv=dev -jar my-app-*.jar"]
在我的构建管道中,我可以看到以下错误消息:
Step 8/10 : COPY ./target/scala-*/my-app-*.jar $PROJECT_HOME/$APP_NAME
COPY failed: no source files were specified
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 4a240742a379 Less than a second ago 171MB
anapsix/alpine-java jdk8 ed55c27d366d 3 years ago 171MB
Error response from daemon: No such image: [secure]
Pushing image [secure] to repository hub.docker.com
The push refers to repository [docker.io/[secure]/my-app]
An image does not exist locally with the tag: [secure]/my-app
我所缺少的是什么,我该如何调试呢?我的意思是我可以添加一些echo语句以打印出路径,但是我不确定为什么会遇到此错误!
答案 0 :(得分:2)
这可能是因为目标文件夹不在"./"
文件夹中。可能是因为.dockerignore
文件将其忽略,或者构建上下文未指向目标文件夹的父文件夹。
如果您不熟悉构建上下文,则说明here