2017-03-05 1 views
0

는 편집 :작곡가 스크립트에서 변수 사용

그것은을 실현하기 위해 나에게 일을했다 그러나 이것은 실제로 안티 패턴입니다. 작곡가는 도커 스크립트를 실행해서는 안됩니다.

내 솔루션은 이것이다 :

"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과 같은 것을 입력 할 수 있고, 끝내야 할 모든 것은 끝납니다. 이와 같은 스크립트

는 :

"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\"" 
    }, 

답변

1

env 변수로 docker-compose를 사용할 수 있습니까? 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" 
    }, 

가 고정 표시기 컨테이너 강타 내부를 호출합니다.