我能够使用-e选项传递环境变量。但我不确定如何使用docker run命令将命令行参数传递到entrypoint中的jar。
Dockerfile
FROM openjdk
ADD . /dir
WORKDIR /dir
COPY ./test-1.0.1.jar /dir/test-1.0.1.jar
ENTRYPOINT java -jar /dir/test-1.0.1.jar
test.sh
#! /bin/bash -l
export AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id)
export AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key)
$value=7
docker run -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -i -t testjava $value
2条答案
按热度按时间jm2pwxwz1#
在exec形式下使用
ENTRYPOINT
那么当你运行
docker run -it testjava $value
时,$value
将被附加在你的入口点之后,就像java -jar /dir/test-1.0.1.jar $value
一样toe950272#
您应该释放
ENTRYPOINT
和CMD
组合的威力。将命令行的开头部分(预计不会更改)放入
ENTRYPOINT
,将尾部(应该是可配置的)放入CMD
。然后您可以简单地将必要的参数添加到docker run
命令中。如下所示:Dockerfile
什
This article给出了一个很好的解释。