使いやすくするためにコマンドを生成してエイリアスに変換してみましたが、最良の形式を指定する方法はわかりません。助けてください?
このコマンドの原理は簡単です。 1つのコマンドでdockerコンテナと別のエイリアスコマンドを使用して2つのプロセスを実行します。以下のコマンドを確認してください。
docker exec -it database_one bash -c "find ./data -type d -name '202*-*-*' -exec mongorestore --drop {} \;" && docker exec -it database_one mongo logindb --eval 'db.users.update({"username":"admin"},{$set:{"password":"test", "reset_password": false}});'
このコマンドはそれ自体は問題ありませんが、エイリアスを作成しようとすると、dockerやfindなどの他のコマンドへのさまざまな内部呼び出しに問題が発生します。私はこれを成功せずに達成するためにevalなどを使ってみました。
答え1
@ilkkachuが言ったように、関数を作成して.zshrcまたは.bashrcファイルに追加すると、次のようになります。
docker_command () {
docker exec -it database_one bash -c "find ./data -type d -name '202*-*-*' -exec mongorestore --drop {} \;" && docker exec -it database_one mongo logindb --eval 'db.users.update({"username":"admin"},{$set:{"password":"test", "reset_password": false}});'
}
その後、コマンドを実行しdocker_command
て機能を実行できます。
あるいは、シェルスクリプトを作成して$ HOME / .local / bin / docker_commandに保存してシェルから直接実行することもできますが、この場合はPATH変数にコマンドのディレクトリを置く必要があります。実行時にパス変数を確認してくださいecho $PATH
。
オプションのいずれかを完了した後でも「別名」これをrcファイルに追加できます。
alias d=docker_command
これを行うとd
。