2017-05-30 9 views
0

ファイルの内容をにロードしようとしましたが、のコマンドを起動している間に、パスワードのような機密データが表示されないようにしています。makefileタスクのファイル内容からビルドコマンド

このコマンドは、変数の置換を行わずに実行すると機能します。私はドッカーレジストリにdocker loginを実行しようとしていますが、理論上これは関係がありません。以下の方法は、dockerコマンドだけでなく、どのコマンドでも使用できます。

私はとバッククォートを`またはそのような何か" 私は二重引用符の組み合わせで台無しと思うが、私はこの作業を取得する方法を見つけることができません。

これまでのところ、

:私のようなものも、異なるものを試してみた

REGISTRY_PSW_FILE=./volume/conf/docker-registry.conf 
REGISTRY_PSW=`cat $(REGISTRY_PSW_FILE)` 
REGISTRY_LOGIN_COMMAND=docker login my-own-registry.something.com -u myRegistryUsr -p $(REGISTRY_PSW) 

docker-push: 
    @echo -e "\n\n\nPushing the docker image to the registry" 
    @echo -e "stuff: $(REGISTRY_PSW)" 
    @echo -e "more stuff: $(REGISTRY_LOGIN_COMMAND)" 
    $(REGISTRY_LOGIN_COMMAND) 
    @echo "DONE" 

:bashの/ GNU-メイクの組み合わせとして、このmakefileコンテンツと運ない何0

か、直接catコマンドを使用して、この1:

REGISTRY_LOGIN_COMMAND=docker login my-own-registry.something.com -u myRegistryUsr -p `cat $(REGISTRY_PSW_FILE)` 

しかし、私のような別のエラー得続ける:makefileタスクIで

  • flag needs an argument: 'p' in -p \n See 'docker login --help'.
  • Error response from daemon: login attempt to https://my-own-registry.something.com/v2 failed with status: 401 Unauthorized

を使用していますとにかくこのようなechoevalの組み合わせを使用していても、(echoのような)コマンドの出力にパスワードを表示しないようにしようとしているので、すぐに(eval + echoの組み合わせではない) @eval "echo -e $(REGISTRY_LOGIN_COMMAND)"同様の出力エラーではまだ動作しません。

私は、GNUのmakeの次のバージョンでcygwinのを使用しています:私は間違って何をやっている

$ make -v 
GNU Make 4.2.1 
Built for x86_64-unknown-cygwin 
Copyright (C) 1988-2016 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. 

答えて

1

ドッカーを直接実行すると、ドッカーのコマンド(およびそれに含まれるパスワード)が表示されないようにする方法はありません。

しかし、メイクがドッキングウィンドウのコマンドが含まれており、それを実行するスクリプトを作成した場合、それはまた別の話です:

DOCKER_SCRIPT = run_docker 

docker-push: 
    sed -e 's/^/docker login my-own-registry.something.com -u myRegistryUsr -p /' -e 's|$$| >/dev/null/|' $(REGISTRY_PSW_FILE) > $(DOCKER_SCRIPT) 
    chmod +x $(DOCKER_SCRIPT) 
    ./$(DOCKER_SCRIPT) 
+0

:)私は、エラーを見ていますおかげで '言っ./run_docker:行1:は/ dev /ヌル/:ディレクトリではありませんが、 '' docker login'コマンドをbashスクリプトに入れて 'Makefile'のような' 。/ volume/conf/docker-registry.sh'と入力します。ログインが成功すると、出力にパスワードが表示されないので、今のところ問題ありません。同じ 'Makefile'タスクでは、画像にタグを付けることにしました。パスワードを分けるログインスクリプトを微調整することはできますが、それは問題ありません。 – TPPZ

関連する問題