2017-12-14 14 views
1

コマンドファイルをシェルスクリプトにドッキングウィンドウの実行を使用して、コマンドライン引数を渡すことができません:使用し

sudo docker run -it -p 80:9000 c822030cc576 sh /app/test/play/docker-entrypoint.sh /app/test/play/servers/server01/play/conf/override.conf /app/log/nflott/play true dev 

マイパラメータ:

$2:/app/test/play/servers/server01/play/conf/override.conf 
$3:/app/log/nflott/play 
$4:true 
$5:dev Which needs to be passed to the docker-entrypoint.sh Script 

マイentrypoint.shスクリプトコード:

 echo "CONFIG:$2 
     echo "LOG_HOME:$3" 
     echo "SKIP_LOGFILE:$4" 
     echo "LOG_ENV:$5 

     /app/test/play/servers/server01/play/bin/apiserver \ 
     -Dconfig.file=/app/test/play/servers/server01/play/conf/override.conf \ 
     -Dpidfile.path=/app/test/play/servers/server01/RUNNING_PID \ 
     -DLOG_HOME=$3 \ 
     -DSKIP_LOGFILE=$4 \ 
     -DLOG_ENV=$5 \ 

    Error: 
     CONFIG:/app/test/play/servers/server01/play/conf/override.conf 
     LOG_HOME:/app/log/nflott/play 
     SKIP_LOGFILE:true 
     LOG_ENV:dev 
     Bad root server path: /app/nflott/play/docker-entrypoint.sh 

echo文の後にあります。私のパラメータがロジックブロックに渡されておらず、不正なルートサーバーのパスで失敗していますue。悪いルートのsererパスエラーを解決してスクリプトを実行するには?

答えて

0

IMHOドッカーコマンドの引数として渡されている可能性があります。代わりに、-e dockerオプションを使用して、dockerコンテナにいくつかの名前付きenv変数として渡してから、スクリプト内でアクセスすることもできます。

0

あなたは特別な--entrypointフラグを使用してcmdでのparamsを渡すことがあります。

sudo docker run -it -p 80:9000 --entrypoint /app/test/play/docker-entrypoint.sh c822030cc576 /app/test/play/servers/server01/play/conf/override.conf /app/log/nflott/play true dev 
関連する問題