예제 #1
0
    public static async Task <string> BuildImageAsync(
        System.IO.Stream tarStream,
        string tag,
        string remote,
        bool rm,
        bool forcerm
        )
    {
        var client = NSwagDockerClientCreate.Create();

        //System.IO.Stream inputStream = tarStream;

        /*
         * string dockerfile = null;
         */string t = tag;

        /*string extrahosts;
         */
        //string remote = "https://github.com/emallard/dotnetcore_0.git";

        /*
         * bool? q = null;
         * bool? nocache,
         * string cachefrom,
         * string pull,
         * bool? rm,
         * bool? forcerm,
         * int? memory,
         * int? memswap,
         * int? cpushares,
         * string cpusetcpus,
         * int? cpuperiod,
         * int? cpuquota,
         * int? buildargs,
         * int? shmsize,
         * bool? squash,
         * string labels,
         * string networkmode,
         */
        MyNamespace.ContentType?content_type = MyNamespace.ContentType.Application_xTar;

        /*
         * string x_Registry_Config,
         * string platform
         */
        return(await client.ImageBuildAsync(tarStream, null, t, null, remote, null, null, null, null, rm, forcerm, null, null, null, null, null, null, null, null, null, null, null, content_type, null, null, CancellationToken.None));
    }
예제 #2
0
        public async Task Build()
        {
            var tag = "1";

            var parameters = new ImageBuildParameters();

            parameters.Tags = new List <string> {
                ImageName + ":" + tag
            };

            using (var httpClient = new HttpClient())
            {
                var response = await httpClient.GetStringAsync("https://raw.githubusercontent.com/emallard/dotnetcore_0/master/Dockerfile");

                File.WriteAllText("../../Dockerfile", response);
            }

            tarHelper.CreateTarFile("../../Dockerfile", "../../Dockerfile.tar");
            var tarStream = new FileStream("../../Dockerfile.tar", FileMode.Open);

            var log = await NSwagDockerClientCreate.BuildImageAsync(
                tarStream,
                ImageName + ":" + tag,
                "https://github.com/emallard/dotnetcore_0.git",
                true,
                false
                );

            await dockerWrapper.DeleteDanglingImages();

            /* Broken pipe problem with Docker.DotNet
             * using (var client = dockerWrapper.GetClient())
             * {
             *  parameters.RemoteContext = "https://github.com/emallard/dotnetcore_0.git";
             *
             *  var stream = await client.Images.BuildImageFromDockerfileAsync(tarStream, parameters);
             *  Console.WriteLine("coucou");
             * }
             */
        }