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