spring-cloud / spring-cloud-deployer-kubernetes

The Spring Cloud Deployer implementation for Kubernetes
Apache License 2.0
157 stars 98 forks source link

Executing multiline command with containerCommand property #451

Closed canerkoseren closed 3 years ago

canerkoseren commented 3 years ago

Hi all,

I want to override the ENTRYPOINT by setting containerCommand property.

By adding this property, I can execute a single line commands like ls -al and I can list the directory.

deployer.appName.kubernetes.containerCommand=ls -al

But, when I want to execute a script block like given below, I am getting errors. Could you help me to execute this script? How should I format the script?

while [ ! -f /run/app/token ];
 do 
  echo waiting token
  sleep 10; 
done; 
ls -l /run/app/token

The property: deployer.appName.kubernetes.containerCommand=/bin/sh 'while [ ! -f /run/app/token ]; do echo Waiting token... && sleep 10; done; ls -l /run/app/token'

The error: /bin/sh: while [ ! -f /run/app/token ]; do echo Waiting for Conjur token... && sleep 10; done; ls -l /run/app/token: No such file or directory

umutcann commented 3 years ago

Hi @canerkoseren ,

May you please add property like below.

deployer.ark-batch-template-dbtodb-v2.kubernetes.containerCommand=/bin/sh '-c' 'while [ ! -f /run/conjur/access-token ]; do echo Waiting for Conjur token... && sleep 10; done; ls -l /run/conjur/access-token && /usr/local/s2i/run'

canerkoseren commented 3 years ago

Thanks @umutcann for your support.