2017-03-05 17 views
0

はEDIT:作曲スクリプトでの変数の使用

それは、それを実現するために私に一日かかりましたが、これは実際にはアンチパターンです。 Composerはドッカースクリプトを実行すべきではありません。

私のソリューションはこれです:

"scripts": { 
    "php bin/console/doctrine.php orm:schema-tool:create", 
    "php bin/console/doctrine.php orm:schema-tool:update --force", 
    "php bin/console/fixtures.php" 
    }, 

---

それは作曲スクリプトに変数を渡すことは可能ですか?

私はドッカーで動作するこのレポジトリを持っています。治具やデータベースのスキーマを更新する必要があるとき、あるいは実行する必要があるものが他にもありますdocker exec私は少なくとも半自動化したいと思います。だから私はcomposer run refresh_appのようなものを入力することができ、完了する必要があるすべてが完了します。

これらのようなスクリプトを使用して

:私は変数にmy_container_nameを渡したい

"scripts": { 
    "db:create": "docker exec -i my_container_name bash -c \"cd /www; php bin/console/doctrine.php orm:schema-tool:create\"", 
    "db:update": "docker exec -i my_container_name bash -c \"cd /www; php bin/console/doctrine.php orm:schema-tool:update --force\"", 
    "db:fixtures": "docker exec -i my_container_name bash -c \"cd /www; php bin/console/fixtures.php\"" 
    }, 

。可能であれば、次のようなことをしてください:

"scripts": { 
    "db:create": "docker exec -i $CONTAINER_ID bash -c \"cd /www; php bin/console/doctrine.php orm:schema-tool:create\"", 
    "db:update": "docker exec -i $CONTAINER_ID bash -c \"cd /www; php bin/console/doctrine.php orm:schema-tool:update --force\"", 
    "db:fixtures": "docker exec -i $CONTAINER_ID bash -c \"cd /www; php bin/console/fixtures.php\"" 
    }, 

答えて

1

env変数でドッカーを作成することはできますか? https://docs.docker.com/compose/environment-variables/

+0

このリンクをありがとうございました。私の問題は解決しません。ドッカーをバックグラウンドで実行し、composer/npmスクリプトを使用してドッカーと通信したいと思います。ハードコーディングはうまくいきますが、画像ユーザーの複数のインスタンスで手作業でコマンドを入力する必要があります。 – Michal

0

はcomposer.jsonでこれらのスクリプトを持っている:

"scripts": { 
    "php bin/console/doctrine.php orm:schema-tool:create", 
    "php bin/console/doctrine.php orm:schema-tool:update --force", 
    "php bin/console/fixtures.php" 
    }, 

は、ドッキングウィンドウコンテナbashの内部でそれらを呼び出します。

関連する問題