Autor Zpráva
AdiOverRide
Profil
Ahoj,
prosím vás lidi, řeším takové problém s konfiguraci dockeru a gitu. Mám nastavený docker (php + mysq), kde vše běží jak má. Pro vývoj používám PHPStorm a při commitu či změně branche bych rád zavolal připravené hook skripty (pre-commit, post-checkout).

Napíšu-li "git checkout větev", zavolá se mi správně skript kde je následující:
#!/bin/bash

docker exec -i php_web /bin/sh
echo $$ # ID

#regenerate proxies
#php bin/console orm:generate-proxies localhost:8100
php bin/console orm:generate-proxies

.
.
.

A však skript se spustí na localu, a ne v dockeru. Prosím vás, dokážete mi někdo poradit, jak skript upravit, aby se spustil právě v docker kontejneru?

Díky,
A.
juriad
Profil
sh očeká následující příkazy na standardním vstupu. Ty mu však žádné nedodáváš. Jednoduchým řešením je použít HEREDOC, ale pozor na proměnné a quotování. Pokud nepotřebuješ žádné proměnné "zvenku", můžeš použít i variantu bez substituce 'END', viz linuxize.com/post/bash-heredoc

docker exec -i php_web /bin/sh << END
echo \$\$ # PID uvnitř dockeru
echo $$ # PID tohoto skriptu mimo docker
...
END

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0