【问题标题】:Running docker image with argument使用参数运行 docker 映像
【发布时间】:2020-11-13 08:39:20
【问题描述】:

我正在使用 spring-boot 和 docker 图像。

我直接从 IntelliJ 名称运行我的 springboot 应用程序,名称为 runtime,其中一些参数如下所示 p>

-DCONFIG_DIR=D:\baseapimanager\runtime\config

我能够成功运行它。

但是通过创建 docker 映像并运行该映像,它无法运行。 因为我不知道如何在运行 docker 映像时传递参数。

在这里我也分享了我的 Docker 文件内容。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD target/docker-runtime.jar docker-runtime.jar
EXPOSE 8091
ENTRYPOINT ["java","-jar","docker-runtime.jar"]

并在 docker 命令下运行,我正在尝试为其创建图像文件。

docker build -f Dockerfile -t docker-runtime .

在此之后执行下面的命令来运行这个生成的图像文件。

docker run -p 8091:8091 docker-runtime

不传递该论点并用该论点评论业务,它工作得非常好。

任何帮助将不胜感激。

【问题讨论】:

    标签: spring-boot docker dockerfile microservices docker-machine


    【解决方案1】:

    如果 CONFIG_DIR 是您使用 Spring 配置 @Value@ConfigurationProperties 使用的参数,您也可以将该参数作为环境变量传递。

    环境变量可以用-e传递给容器

    docker run -p 8091:8091 -e CONFIG_DIR=D:\baseapimanager\runtime\config docker-runtime
    

    但由于 D:\baseapimanager\runtime\config 看起来像 Windows 路径,在 Docker 容器内不可见,您必须将配置也添加到 docker 映像或挂载 docker 卷,并且参数必须指向到音量。

    【讨论】:

    • 如何给docker镜像添加配置?
    • 您好@Simon,我想映射D:// 驱动器以用于绑定源目录,但它不起作用。使用C:// 驱动它工作正常,如下所述docker run -p 8091:8091 --mount type=bind,source=/c/Users/lenovo/data,target=/shareddata docker-runtime
    【解决方案2】:

    所以要将参数传递给 docker build,请执行以下操作......

    1. ARG -DCONFIG_DIR

    在 docker compose 文件中添加以上行.....

    1. $-DCONFIG_DIR

    在 dockerfile 中使用上述内容并访问变量

    1. docker-compose build --build-arg -DCONFIG_DIR = ''

    【讨论】:

      【解决方案3】:

      我在 Docker 文件中进行了以下更改。

      FROM openjdk:8-jdk-alpine
      VOLUME /tmp
      ADD target/docker-runtime.jar docker-runtime.jar
      EXPOSE 8091
      ENTRYPOINT ["java","-jar","-DCONFIG_DIR=/shareddata","docker-runtime.jar"]
      

      在运行图像时,我使用下面的命令绑定了该地址,它工作正常。

      docker run -p 8091:8091 --mount type=bind,source=/c/Users/lenovo/data,target=/shareddata docker-runtime

      这解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2017-10-14
        • 1970-01-01
        • 1970-01-01
        • 2017-04-20
        • 1970-01-01
        • 2020-09-29
        • 2016-05-31
        • 1970-01-01
        • 2020-07-19
        相关资源
        最近更新 更多