无法在Windows桌面上运行docker映像。如果要在windows和Linux上运行映像,是否需要不同的映像

无法在Windows桌面上运行docker映像。如果要在windows和Linux上运行映像,是否需要不同的映像,docker,Docker,当我运行docker映像时,由于映像找不到应该存在的文件,所以出现错误 错误 我的本地计算机是一台windows10,我想在它上测试我的docker图像。最后,我将在googlecloud上的虚拟机上安装它。该图像是我的play framework应用程序的图像,根据本文档,该应用程序只需要java运行时- 应用程序的发行版将有两个zip文件,一个用于linux,另一个用于windows的.bat文件。我希望能够使用docker run在我的windows计算机上运行linux版本。为此,我计划

当我运行docker映像时,由于映像找不到应该存在的文件,所以出现错误

错误

我的本地计算机是一台
windows10
,我想在它上测试我的
docker
图像。最后,我将在
google
cloud上的虚拟机上安装它。该图像是我的
play framework
应用程序的图像,根据本文档,该应用程序只需要
java
运行时-

应用程序的发行版将有两个zip文件,一个用于
linux
,另一个用于windows的
.bat
文件。我希望能够使用
docker run
在我的windows计算机上运行
linux
版本。为此,我计划为我的应用程序创建一个docker映像

问题1)我是否可以使用
Docker
创建这样一个映像,我可以在我的windows机器上运行,也可以在云中的
linux
机器上运行? 问题2)我是否需要为
linux
windows
创建两个单独的映像

我已从安装了windows的docker desktop。我创建了以下
Dockerfile

FROM openjdk:8
ENV APP_NAME      my-app
ENV APP_VERSION   1.0-SNAPSHOT
#make a directory deploy in the container
RUN mkdir deploy
#cd to container
WORKDIR deploy
#copy from host (path relative to location of Dockerfile on host) to deploy directory. The deploy directory will have my-app-1.0.zip, logback_prod.xml and application_prod.xml
COPY target/universal/my-app-1.0.zip .
COPY conf/logback_prod.xml .
COPY conf/application_prod.conf .
#unzip deploy/my-app-1.0.zip in container
RUN unzip my-app-1.0.zip
#chmod my-app script in deploy/my-app-1.0/bin/my-app
RUN chmod +x my-app-1.0/bin/my-app
#entrypoint is deploy/....
ENTRYPOINT my-app-1.0/bin/codingjediweb -Dplay.http.secret.key=changemeplease -Dlogger.file=logback_prod.xml -Dconfig.file=application_prod.conf
dockerfile
位于我的windows笔记本电脑的路径
web
。同一级别有
conf
target
目录。我假设在
Dockerfile
WORKDIR
image
中的路径,当我使用
COPY
命令时,第一条路径(源)是我机器上的本地路径,第二条路径(目标)是映像中的路径


问题3)当我运行
docker run my-app-1.0-snapshot:latest
时,我得到问题开头所述的错误。为什么找不到该文件?我注意到
url
/deploy/…
。由于我已将
WORKDIR
设置为
,它不应该是
/deploy

问题是在
入口点
,我需要指定正确的路径-ENTRYPOINT my-app-1.0/bin/codingjediweb-Dplay.http.secret.key=changemeplease-Dlogger.file=deploy/logback\u prod.xml-Dconfig.file=deploy/application\u prod.conf

WORKDIR似乎没有在-Dlogger.file和-Dconfig.file参数中使用

FROM openjdk:8
ENV APP_NAME      my-app
ENV APP_VERSION   1.0-SNAPSHOT
#make a directory deploy in the container
RUN mkdir deploy
#cd to container
WORKDIR deploy
#copy from host (path relative to location of Dockerfile on host) to deploy directory. The deploy directory will have my-app-1.0.zip, logback_prod.xml and application_prod.xml
COPY target/universal/my-app-1.0.zip .
COPY conf/logback_prod.xml .
COPY conf/application_prod.conf .
#unzip deploy/my-app-1.0.zip in container
RUN unzip my-app-1.0.zip
#chmod my-app script in deploy/my-app-1.0/bin/my-app
RUN chmod +x my-app-1.0/bin/my-app
#entrypoint is deploy/....
ENTRYPOINT my-app-1.0/bin/codingjediweb -Dplay.http.secret.key=changemeplease -Dlogger.file=logback_prod.xml -Dconfig.file=application_prod.conf