public static void Containerize(string[] args, Action main) { if (InDockerContainer()) { main(); return; } Config config = new Config(); Metaparticle.Runtime.Config runtimeConfig = null; var trace = new StackTrace(); foreach (object attribute in trace.GetFrame(1).GetMethod().GetCustomAttributes(true)) { if (attribute is Config) { config = (Config)attribute; } if (attribute is Metaparticle.Runtime.Config) { runtimeConfig = (Metaparticle.Runtime.Config)attribute; } } var mp = new Driver(config, runtimeConfig); mp.Build(args); }
public string Run(string image, Metaparticle.Runtime.Config config) { var idWriter = new StringWriter(); Exec("docker", string.Format("run {0} -d {1}", portString(config.Ports), image), stdout: idWriter); return(idWriter.ToString().Trim()); }
public string Run(string image, Metaparticle.Runtime.Config config) { // TODO: handle multiple ports var portStr = ""; if (config.Ports != null && config.Ports.Length > 0) { portStr = string.Format("--port {0}", config.Ports[0]); } var pubStr = ""; if (config.Public) { pubStr = "--ip-address Public"; } var name = "test"; var data = new StringWriter(); var proc = Exec("az", string.Format("container create --image={0} -g test -n {1} {2} {3} --env=METAPARTICLE_IN_CONTAINER=true", image, name, portStr, pubStr), stdout: data); var json = data.ToString(); var obj = JObject.Parse(json); var id = obj["id"]; Console.WriteLine(id.ToString()); return(name); }
public Driver(Config config, Metaparticle.Runtime.Config runtimeConfig) { this.config = config; this.runtimeConfig = runtimeConfig; }
public Driver(Config config, RuntimeConfig runtimeConfig) { this.config = config; this.runtimeConfig = runtimeConfig; }