我有一个
java应用程序(jar文件),我想要能够从码头图像运行.
我创建了一个Docker文件来创建一个使用centos作为基础的图像,并安装java本身:
Dockerfile FROM centos RUN yum install -y java-1.7.0-openjdk
我运行docker build -t me / java7以获取图像me / java7
但是我陷入了一些死胡同.
>如何将jar文件从主机复制到图像/容器中
>我需要2个参数. 1是一个文件,需要在运行时将其复制到容器中.另一个是一个数字,需要在java -jar命令中自动传递到jar文件,当用户使用参数运行docker运行时
额外备注:
jar文件是一个本地文件.通过wget或任何东西无法访问任何地方.目前最接近的是包含它的Windows共享.我也可以从git存储库访问源代码,但这将涉及编译所有内容,并在映像上安装maven和git,所以我宁愿避免这种情况.
任何帮助深表感谢.
解决方法
>在Docker文件中,使用ADD添加本地文件,例如
ADD your-local.jar /some-container-location
>您可以使用卷在运行时将文件放在容器中,例如
VOLUME /copy-into-this-dir
然后你运行使用
docker run -v=/location/of/file/locally:/copy-into-this-dir -t me/java7
您可以使用ENTRYPOINT和CMD传递参数,例如
ENTRYPOINT ["java","-jar","/whatever/your.jar"] CMD [""]
然后再运行使用
docker run -v=/location/of/file/locally:/copy-into-this-dir -t me/java7 --myNumber 42