java – 如何为本地应用程序创建Docker映像文件和值参数

我有一个 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

(看看Dockerfile documentation)

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...