func (f Focker) RunRuntime(writer io.Writer) { prepareRuntimeFilesystem(utils.CloudfockerHome()) runConfig := config.NewRuntimeRunConfig(utils.CloudfockerHome() + "/droplet") cli, Stdout, stdoutpipe := docker.GetNewClient() if docker.GetContainerId(cli, Stdout, stdoutpipe, runConfig.ContainerName) != "" { fmt.Println("Deleting running runtime container...") f.StopRuntime(writer) } cli, Stdout, stdoutpipe = docker.GetNewClient() docker.RunConfiguredContainer(cli, Stdout, stdoutpipe, writer, runConfig) fmt.Fprintln(writer, "Connect to your running application at http://localhost:8080/") }
fakeDockerClient = new(FakeDockerClient) stdout, stdoutPipe := io.Pipe() docker.DeleteContainer(fakeDockerClient, stdout, stdoutPipe, buffer, "cloudfocker-container") Expect(len(fakeDockerClient.cmdRmArgs)).To(Equal(1)) Expect(fakeDockerClient.cmdRmArgs[0]).To(Equal("cloudfocker-container")) }) }) Describe("Getting a cloudfocker runtime container ID", func() { Context("with no cloudfocker runtime container running", func() { It("should return empty string", func() { fakeDockerClient = new(FakeDockerClient) stdout, stdoutPipe := io.Pipe() containerId := make(chan string) go func() { containerId <- docker.GetContainerId(fakeDockerClient, stdout, stdoutPipe, "cloudfocker-runtime") }() io.Copy(stdoutPipe, bytes.NewBufferString("CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n")) Eventually(fakeDockerClient.cmdPsCalled).Should(Equal(true)) Eventually(containerId).Should(Receive(Equal(""))) }) }) Context("with a cloudfocker runtime container running", func() { It("should return the container ID", func() { fakeDockerClient = new(FakeDockerClient) stdout, stdoutPipe := io.Pipe() containerId := make(chan string) go func() { containerId <- docker.GetContainerId(fakeDockerClient, stdout, stdoutPipe, "cloudfocker-runtime") }() io.Copy(stdoutPipe, bytes.NewBufferString("CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n180e16d9ef28 cloudfocker:latest /usr/sbin/nginx -c / 13 minutes ago Up 13 minutes 0.0.0.0:8080->8080/tcp cloudfocker-runtime\n"))