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í:
1#!/bin/bash
2 
3docker exec -i php_web /bin/sh
4echo $$ # ID
5 
6#regenerate proxies
7#php bin/console orm:generate-proxies localhost:8100
8php bin/console orm:generate-proxies
9 
10.
11.
12.
#!/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

1docker exec -i php_web /bin/sh << END
2echo \$\$ # PID uvnitř dockeru
3echo $$ # PID tohoto skriptu mimo docker
4...
5END
docker exec -i php_web /bin/sh << END
echo \$\$ # PID uvnitř dockeru
echo $$ # PID tohoto skriptu mimo docker
...
END
Toto vlákno je staré, již dlouho do něj nikdo nepřispíval.

Informace a odkazy zde uváděné už nemusejí být aktuální. Nechcete-li řešit zde uvedenou konkrétní otázku, založte si vlastní vlákno, nepište do tohoto. Vložíte-li sem nyní příspěvek, upoutáte pozornost mnoha lidí a někteří z nich si jen kvůli vám přečtou i všechny předcházející příspěvky. Předpokládáte-li, že váš text skutečně bude hodnotný, stiskněte následující tlačítko:


Běda vám, jestli to bude blábol.

0