【问题标题】:How can I create custom image from corda/corda-zulu-5.0-snapshot image?如何从 corda/corda-zulu-5.0-snapshot 图像创建自定义图像?
【发布时间】:2019-07-04 06:56:26
【问题描述】:

我想从corda/corda-zulu-5.0-snapshot 图像创建自定义图像,所以基本上我想将合同和工作流 jar 放在容器内的 /opt/corda/cordapps 文件夹中,同时使用 Dockerfile 从 corda 基础图像创建我自己的图像。 所以以后我只需要挂载除/opt/corda/cordapps以外的卷点。

我已经在我的 Dockerfile 中尝试了这些配置:

FROM corda/corda-zulu-5.0-snapshot:latest
USER root
VOLUME ./cordapp-tradefinance-contracts-0.1.jar /opt/corda/cordapps/
VOLUME ./cordapp-tradefinance-workflows-0.1.jar /opt/corda/cordapps/

还有这个

FROM corda/corda-zulu-5.0-snapshot:latest
USER root
COPY ./cordapp-tradefinance-contracts-0.1.jar /opt/corda/cordapps/
COPY ./cordapp-tradefinance-workflows-0.1.jar /opt/corda/cordapps/

但是这些 Dockerfile 中的任何一个都不起作用。在运行容器后,我在检查容器内部时创建了新映像,我无法在 /opt/corda/cordapps 文件夹中找到这些 jar。

FROM corda/corda-zulu-5.0-snapshot:latest
USER root
VOLUME ./cordapp-tradefinance-contracts-0.1.jar /opt/corda/cordapps/
VOLUME ./cordapp-tradefinance-workflows-0.1.jar /opt/corda/cordapps/

我希望在运行自定义映像后,这些 jar 应该被复制到容器的 /opt/corda/cordapps 文件夹中。

【问题讨论】:

    标签: java docker dockerfile corda


    【解决方案1】:

    您需要使用 COPY 语句,而不是 VOLUME(用于安装卷):

    https://docs.docker.com/engine/reference/builder/#copy

    【讨论】:

    • 感谢 Chris Chabot,它对我有用。我还在使用带有复制命令的卷挂载点,因此它覆盖了该文件夹的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多