Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
 public Driver(Config config, Metaparticle.Runtime.Config runtimeConfig)
 {
     this.config        = config;
     this.runtimeConfig = runtimeConfig;
 }
Ejemplo n.º 5
0
 public Driver(Config config, RuntimeConfig runtimeConfig)
 {
     this.config        = config;
     this.runtimeConfig = runtimeConfig;
 }