我无法将windows计算机中的文件添加到docker中的alpine image

我无法将windows计算机中的文件添加到docker中的alpine image,docker,dockerfile,Docker,Dockerfile,我正在学习docker教程,其中一节课创建了一个docker文件,其中我们: 从alpine图像创建容器 将java安装到该映像中 设置环境路径,以便可以在映像中执行javac 将工作目录更改为指定目录 将Test.java文件从我的windows计算机添加到步骤4中提到的映像中的工作目录 编译Test.java文件,然后运行它 我已在windows计算机中创建了以下dockerfile: 以下是我的dockerfile内容: FROM alpine RUN apk add openjdk8 E

我正在学习docker教程,其中一节课创建了一个docker文件,其中我们:

  • 从alpine图像创建容器
  • 将java安装到该映像中
  • 设置环境路径,以便可以在映像中执行javac
  • 将工作目录更改为指定目录
  • 将Test.java文件从我的windows计算机添加到步骤4中提到的映像中的工作目录
  • 编译Test.java文件,然后运行它
  • 我已在windows计算机中创建了以下dockerfile:

    以下是我的dockerfile内容:

    FROM alpine
    RUN apk add openjdk8
    ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/bin
    WORKDIR /usr/share/udemy
    ADD Test.java Test.java
    ENTRYPOINT javac Test.java && java Test
    
    这是我从容器中收到的错误消息:

    javac: file not found: /usr/share/udemy/Test.java
    Usage: javac <options> <source files>
    use -help for a list of possible options
    
    javac:找不到文件:/usr/share/udemy/Test.java
    用法:javac
    使用-help获取可能选项的列表
    
    我的cmd提示符上应该会出现“你好,世界!!!”


    我做错了什么。我按照教程一直到dot,但我似乎无法理解它。

    如果您将ENTRYPOINT更改为CMD,您可以
    docker运行--rm-it imagename sh
    ,在构建的图像上获得一个交互式shell并四处查看。(还有一个
    --entrypoint
    选项,但使用起来有点笨拙。)您的dockerfile看起来不错,但我很好奇有一件事可能会导致您的问题。您从哪里运行docker命令?您能运行命令
    dir
    并为我们显示输出吗?也,你能给我们看一下你用来构建和运行docker镜像的命令吗?@Joshua当我执行dir命令时,我得到了文件夹中文件的列表:
    docker Notes.txt
    docker commands.pdf
    DockerFile
    Test.java我使用以下命令来构建:
    docker build-t=oribta1frame/hello word.
    要运行:
    docker run orbitalframe/hello world
    @DavidMaze我运行了以下命令:
    docker run--rm-it orbitalframe/hello world sh
    ,我没有得到交互式shell。我收到与以前相同的错误消息,并且它存在。我将使用
    COPY
    而不是
    ADD
    ,因为您没有使用
    ADD
    的特殊提取功能。另外,
    ADD
    /
    COPY
    的第二个参数应该是destination,因此它应该是一个目录/路径,而不仅仅是一个文件名(可能它的工作方式与tho类似)。最后,
    Test.java
    是否与您的
    Dockerfile
    位于同一目录中?应该是这样的。如果您将ENTRYPOINT更改为CMD,您可以
    docker运行--rm-It imagename sh
    在构建的图像上获得一个交互式shell并四处查看。(还有一个
    --entrypoint
    选项,但使用起来有点笨拙。)您的dockerfile看起来不错,但我很好奇有一件事可能会导致您的问题。您从哪里运行docker命令?您能运行命令
    dir
    并为我们显示输出吗?也,你能给我们看一下你用来构建和运行docker镜像的命令吗?@Joshua当我执行dir命令时,我得到了文件夹中文件的列表:
    docker Notes.txt
    docker commands.pdf
    DockerFile
    Test.java我使用以下命令来构建:
    docker build-t=oribta1frame/hello word.
    要运行:
    docker run orbitalframe/hello world
    @DavidMaze我运行了以下命令:
    docker run--rm-it orbitalframe/hello world sh
    ,我没有得到交互式shell。我收到与以前相同的错误消息,并且它存在。我将使用
    COPY
    而不是
    ADD
    ,因为您没有使用
    ADD
    的特殊提取功能。另外,
    ADD
    /
    COPY
    的第二个参数应该是destination,因此它应该是一个目录/路径,而不仅仅是一个文件名(可能它的工作方式与tho类似)。最后,
    Test.java
    是否与您的
    Dockerfile
    位于同一目录中?应该是。