运行 docker 图片带参数
Running docker image with argument
我正在使用 spring-boot 以及 docker 图像。
我 运行我的 springboot
应用程序直接来自 IntelliJ
名称为 runtime
一些参数如下
-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
无需通过该论点并用该论点评论业务,它工作得很好。
任何帮助将不胜感激。
如果 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 构建,请执行以下操作....
- 参数-DCONFIG_DIR
在 docker 撰写文件中添加以上行.....
- $-DCONFIG_DIR
在 docker 文件中使用上述内容并访问变量
- docker-compose build --build-arg -DCONFIG_DIR = ''
我在 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
这解决了我的问题。
我正在使用 spring-boot 以及 docker 图像。
我 运行我的 springboot
应用程序直接来自 IntelliJ
名称为 runtime
一些参数如下
-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
无需通过该论点并用该论点评论业务,它工作得很好。
任何帮助将不胜感激。
如果 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 构建,请执行以下操作....
- 参数-DCONFIG_DIR
在 docker 撰写文件中添加以上行.....
- $-DCONFIG_DIR
在 docker 文件中使用上述内容并访问变量
- docker-compose build --build-arg -DCONFIG_DIR = ''
我在 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
这解决了我的问题。