編輯:在作曲家腳本中使用的變量
花了我一天的時間去實現它,但其實這是一個反模式。作曲家不應該運行碼頭腳本。
我的解決辦法是這樣的:
"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中運行。當我需要更新燈具或數據庫模式或幾乎所有我需要運行docker exec
我想至少半自動。這樣我可以輸入類似composer run refresh_app
之類的東西,並且所有需要完成的事情都會完成。
有了這樣的腳本:
"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\""
},
我想通過在變量my_container_name
。可能做這樣的事情:
"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\""
},
謝謝你的鏈接。但它並沒有解決我的問題。我想讓docker在後臺運行,並使用composer/npm腳本與它進行通信。它工作得很好,但是對於我的圖像的多個實例,用戶需要手動輸入命令。 – Michal