我有一个java应用程序(jar文件),我希望能够从docker镜像运行.
我创建了一个Dockerfile来创建一个使用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
当用户docker run
使用参数运行时需要自动传递给命令中的jar文件的数字
额外说明:
jar文件是本地文件.不通过wget或任何东西访问任何地方.我目前最接近的是包含它的Windows共享.我也可以从git存储库访问源代码,但这将涉及编译所有内容并在映像上安装maven和git,所以我宁愿避免这种情况.
任何帮助深表感谢.
在Dockerfile中,使用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
(看看Dockerfile文档.)