Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用dockerfile将环境变量传递给java类_Java_Shell_Docker_Dockerfile - Fatal编程技术网

使用dockerfile将环境变量传递给java类

使用dockerfile将环境变量传递给java类,java,shell,docker,dockerfile,Java,Shell,Docker,Dockerfile,我试图将环境变量传递给shell脚本,该脚本使用docker运行java类。我遇到了错误,无法执行它 test.sh #!/bin/bash java -cp s3fileprocess-1.0.1.jar com.wt.test.S3FileProcess $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY $bucketName $keyName $uploadFileName $downloadFile Dockerfile: FROM java:8 A

我试图将环境变量传递给shell脚本,该脚本使用docker运行java类。我遇到了错误,无法执行它

test.sh

#!/bin/bash
java -cp s3fileprocess-1.0.1.jar com.wt.test.S3FileProcess $AWS_ACCESS_KEY_ID  $AWS_SECRET_ACCESS_KEY $bucketName $keyName $uploadFileName $downloadFile
Dockerfile:

FROM java:8
ADD . /home/test
WORKDIR /home/test
RUN chmod +x ./test.sh
ENTRYPOINT ./test.sh
FROM amazonlinux
ADD . /home/test  
WORKDIR /home/test  
RUN chmod +x ./test.sh   
ENTRYPOINT ./test.sh
建立形象:

docker build -t test .
运行容器:

docker run  -e AWS_ACCESS_KEY_ID=A***** \
-e AWS_SECRET_ACCESS_KEY=w***** \
-e bucketName=I***** \
-e keyName=index.php \
-e uploadFileName=/home/test/index.php \
-e downloadFile=/home/index.php \ 
test
docker run  -e AWS_ACCESS_KEY_ID=A*********** \
-e AWS_SECRET_ACCESS_KEY=w************ \
-e uploadFileName=/home/test/index.php \
test  /bin/bash
错误:

docker: Error parsing reference: " " is not a valid repository/tag: invalid reference format.
See 'docker run --help'.
我能够使用docker将环境变量传递到一个简单的shell脚本文件,而不会出现任何问题

这非常有效: test.sh

Dockerfile:

FROM java:8
ADD . /home/test
WORKDIR /home/test
RUN chmod +x ./test.sh
ENTRYPOINT ./test.sh
FROM amazonlinux
ADD . /home/test  
WORKDIR /home/test  
RUN chmod +x ./test.sh   
ENTRYPOINT ./test.sh
构建图像:

docker build -t test .
运行容器:

docker run  -e AWS_ACCESS_KEY_ID=A***** \
-e AWS_SECRET_ACCESS_KEY=w***** \
-e bucketName=I***** \
-e keyName=index.php \
-e uploadFileName=/home/test/index.php \
-e downloadFile=/home/index.php \ 
test
docker run  -e AWS_ACCESS_KEY_ID=A*********** \
-e AWS_SECRET_ACCESS_KEY=w************ \
-e uploadFileName=/home/test/index.php \
test  /bin/bash

有人能帮我找出我做错了什么吗?如何使用dockerfile将环境变量传递给java类?

您的信息看起来非常正常。您没有标记图像吗?请检查图像是否正在运行,然后检查新图像名称是否有效。谢谢您的评论。同样的命令很好用!