-
Notifications
You must be signed in to change notification settings - Fork 0
1 why es
[ english
] [ spanish
]
Vamos a los bifes con un ejemplo rápido así se entiende mejor el concepto:
Simulemos que ejecutamos estos comandos constantemente:
docker run --rm -it --name myProject-dev myProject-dev sh
...
docker run --rm -it --name myProject-prod myProject-prod sh
Se pone más divertido con los mapeos:
docker run --rm -it -p 4200:4200 -p 49153:49153 -v /choclo:... --name myProject-dev myProject-dev sh
...
docker run --rm -it -p 4200:4200 -p 49153:49153 -v /choclo:... --name myProject-prod myProject-prod sh
Para esto llegó scripts de npm en el package.json! Nos debería quedar algo asi:
"runDev": "docker run --rm -it -p 4200:4200 -v /choclo:... --name myProject-dev myProject sh",
"runProd": "docker run --rm -it -p 4200:4200 -v /choclo:... --name myProject-dev myProject sh",
Para luego ejecutar: npm run runDev y npm run runProd.
Pero como vemos, hay "código" repetido, y si multiplicamos por variables, podrían ser muchas líneas con pequeñas diferencias y si cambiamos algo en alguna de ellas potencialmente tenes que replicarlo en el resto, y como buenos programadores que somos evitamos el duplicado (no?).
Necesitamos algo más flexible y dinámico que permita escalar mejor. El approach elegido para solucionar esto en esta tool es el de "template".
Ejemplo rápido:
"project"="myProject"
"devName"="${project}-dev"
"prodName"="${project}-prod"
"dockerRun"="docker run --rm -it -p 4200:4200 -p 49153:49153 -v /choclo:... --name"
"runDev" =${dockerRun} ${devName} ${devName} sh
"runProd"=${dockerRun} ${prodName} ${prodName} sh
Y luego se ejectuaria con: x runDev y x runProd.
Ahora, imaginemos que todo el equipo de trabajo tiene la misma configuración, comandos rápidos y normalizados, hablaríamos el mismo idioma y podríamos sentirnos como en "casa" frente a otra máquina!
MIT © 2018 Crystian, made with love for you <3!