Backticks (``) • Es la forma más sencilla de ejecutar comandos. • Devuelve el resultado del comando ejecutado en forma de cadena. • Permite interpolar cadenas. files = `ls` # => "Capfile\nGemfile\nGemfile.lock\nREA DME.md\nREADME.rdoc\nRakefile\napp\n bin\nconfig\nconfig.ru\ncontainer_po rts\ncontainer_ssl\ndb\ndoc\ndocker\ ngulpfile.js\nicons.pxm\nlib\nlog\nm ain_files\nmodels\npem\npublic\nscri pt\nsharejs.js\nssl\ntest\ntmp\nupst art_service\nvendor\nvhost\n"
%x • Hace lo mismo que los backticks, pero usa delimitadores al igual que %q o %w. • Así como los backticks, permite interpolar cadenas. directory = 'app' files = %x{ls #{directory}} # => "admin\nassets\nchannels\nc ontrollers\nhelpers\njobs\n mailers\nmodels\nserializer s\nviews\nworkers\n"
system • Ejecuta el comando pero solo retorna true si se ejecutó correctamente o false si da error. directory = 'app' files = system("ls #{directory}") # … # => true
exec • Ejecuta el comando y reemplaza el proceso actual por el proceso generado por el comando. • Con exec se termina la ejecución de Ruby e imprime el resultado del comando. directory = 'app' files = exec("ls #{directory}") # …
Docker • Es una plataforma que permite correr máquinas virtuales ligeras (llamados containers o contenedores). • Podemos usarlo para levantar ambientes de desarrollo, pruebas o producción.
Docker • Podemos crear imágenes en un momento determinado y crear miles de copias a partir de ese punto en el tiempo. • También podemos crear imágenes a partir de recetas, llamadas Dockerfiles.
Docker en CodePicnic • CodePicnic permite crear pequeñas máquinas virtuales (llamadas consolas) utilizando Docker, para editar y ejecutar código desde el navegador.
Docker en CodePicnic • Cada consola tiene una interfaz gráfica con un sidebar con archivos, un editor de código y una terminal conectada a su propio contenedor de Docker.
Docker en CodePicnic • Para integrar las consolas con sus respectivos contenedores necesitamos utilizar la API de Docker en sus dos formas: REST API y el comando docker.