public override void DoExecute()

in src/Dimmy.Sitecore.Plugin/Pipeline/StartProject/Nodes/CreateContainerCerts.cs [18:53]


        public override void DoExecute(IStartProjectContext input)
        {
            var traefikCertsPath = Path.Combine(input.WorkingPath, "traefik", "certs");
            if (!Directory.Exists(traefikCertsPath))
                Directory.CreateDirectory(traefikCertsPath);
            
            var traefikConfig = new Config();
            
            foreach (var service in input.DockerComposeFileConfig.ServiceDefinitions)
            {
                if (!service.Labels.ContainsKey("traefik.enable")) continue;
                var host = service
                    .Labels
                    .Single(l => l.Key.EndsWith("rule"))
                    .Value;

                var hostName = GetHostNameFromEnvironmentalVariables(host, input);

                var certificate = CreateCert(hostName, traefikCertsPath);
                traefikConfig.Tls.Certificates.Add(certificate);
            }
            
            var traefikConfigPath = Path.Combine(input.WorkingPath, "traefik", "config", "dynamic");
            if (!Directory.Exists(traefikConfigPath))
                Directory.CreateDirectory(traefikConfigPath);
            
            var serializer = new SerializerBuilder()
                .WithNamingConvention(CamelCaseNamingConvention.Instance)
                .Build();
            
            var traefikConfigYaml = serializer.Serialize(traefikConfig);

            File.WriteAllText(
                Path.Combine(traefikConfigPath, "certs_config.yaml"),
                traefikConfigYaml);
        }