Docker撰写JVM参数
我编写了一个java应用程序,它接受一个环境variables,它需要一个参数来为JWT令牌salt键设置一个键。 有没有办法让我在Docker Compose中传递命令variables?
java -Djava.security.egd=file:/dev/./urandom -jar /user-profile-api.jar --key=blah
然后运行Docker镜像
docker run -p 8080:8080 docker_image --key=blah
如果您已经能够运行您的docker集装箱使用:
docker run -p 8080:8080 docker_image --key=blah
然后,您只需要将组合文件中的service
的command
属性覆盖为–key = blah。 所以:
services: app: command: --key=blah ...
一种方法是把你的java命令放在一个shell脚本(比如bootstrap.sh
)中,并将其设置为在docker compose中运行的命令。 然后在bootstrap.sh
通过docker-compose.yml
的环境variables注入密钥。
例如
bootstrap.sh
java -Djava.security.egd=file:/dev/./urandom -jar /user-profile-api.jar --key=$SALT_KEY
泊坞窗,compose.yml
build: . environment: - SALT_KEY=blah command: /opt/app/bootstrap.sh
显然你需要将bootstrap.sh
打包到你的容器中才能使用。