public override async Task ExecuteAsync(OutputContext output, Application application, ServiceEntry service) { if (SkipWithoutProject(output, service, out var project)) { return; } if (SkipWithoutContainerInfo(output, service, out var container)) { return; } if (SkipForEnvironment(output, service, Environment)) { return; } if (!await DockerDetector.Instance.IsDockerInstalled.Value) { throw new CommandException($"Cannot generate a docker image for '{service.Service.Name}' because docker is not installed."); } if (!await DockerDetector.Instance.IsDockerConnectedToDaemon.Value) { throw new CommandException($"Cannot generate a docker image for '{service.Service.Name}' because docker is not running."); } await DockerContainerBuilder.BuildContainerImageAsync(output, application, service, project, container); }
public override async Task ExecuteAsync(OutputContext output, ApplicationBuilder application, ServiceBuilder service) { if (SkipWithoutProject(output, service, out var project)) { return; } if (SkipWithoutContainerInfo(output, service, out var container)) { return; } if (!application.ContainerEngine.IsUsable(out string?unusableReason)) { throw new CommandException($"Cannot generate a docker image for '{service.Name}' because {unusableReason}."); } if (project is DotnetProjectServiceBuilder dotnetProject) { await DockerContainerBuilder.BuildContainerImageAsync(output, application, dotnetProject, container); } else if (project is DockerFileServiceBuilder dockerFile) { await DockerContainerBuilder.BuildContainerImageFromDockerFileAsync(output, application, dockerFile, container); } }
public override async Task ExecuteAsync(OutputContext output, ApplicationBuilder application, ServiceBuilder service) { if (SkipWithoutProject(output, service, out var project)) { return; } if (SkipWithoutContainerInfo(output, service, out var container)) { return; } if (!await DockerDetector.Instance.IsDockerInstalled.Value) { throw new CommandException($"Cannot generate a docker image for '{service.Name}' because docker is not installed."); } if (!await DockerDetector.Instance.IsDockerConnectedToDaemon.Value) { throw new CommandException($"Cannot generate a docker image for '{service.Name}' because docker is not running."); } if (project is DotnetProjectServiceBuilder dotnetProject) { await DockerContainerBuilder.BuildContainerImageAsync(output, application, dotnetProject, container); } else if (project is DockerFileServiceBuilder dockerFile) { await DockerContainerBuilder.BuildContainerImageFromDockerFileAsync(output, application, dockerFile, container); } }