コード例 #1
0
        public static CreateContainerParametersBuilder CreateFromContainer(Container container)
        {
            var imageId = new DockerImageId(container.ImageName, container.ImageVersion);
            var builder = new CreateContainerParametersBuilder(imageId, container.Name);

            foreach (var(name, value) in DockerLabelHelper.CreateForContainer(container))
            {
                builder.AddLabel(name, value);
            }

            foreach (var binding in container.ServerPorts)
            {
                builder.AddPortBinding(binding.ContainerPort, binding.HostPort);
            }

            foreach (var volume in container.Volumes)
            {
                builder.AddVolumeMount(
                    volume.DockerName,
                    volume.ContainerMountPoint,
                    DockerLabelHelper.CreateForVolume(container, volume)
                    );
            }

            foreach (var argument in container.Arguments)
            {
                builder.AddEnvironmentVariable(argument);
            }

            return(builder);
        }
コード例 #2
0
        public static CreateContainerParametersBuilder CreateStorageServer(Server server)
        {
            var imageId       = new DockerImageId("triceratops_volumeinspector", "1.0");
            var containerName = NameHelper.SanitiseHostname($"Triceratops.StorageServer.{server.Name}");

            var builder = new CreateContainerParametersBuilder(imageId, containerName)
                          .AddLabels(DockerLabelHelper.CreateForTemporaryContainer());

            foreach (var volume in ServerVolumeIdentifier.CreateForServer(server))
            {
                builder.AddVolumeMount(
                    volume.VolumeName,
                    volume.CreateMountDestination(Constants.VolumeInspectorVolumesPath),
                    new Dictionary <string, string>(0)
                    );
            }
            ;

            return(builder);
        }