func (f Focker) RunStager(writer io.Writer, appDir string) error { prepareStagingFilesystem(utils.CloudfockerHome()) stagingAppDir := prepareStagingApp(appDir, utils.CloudfockerHome()+"/staging") runConfig := config.NewStageRunConfig(stagingAppDir) cli, Stdout, stdoutpipe := docker.GetNewClient() docker.RunConfiguredContainer(cli, Stdout, stdoutpipe, writer, runConfig) f.DeleteContainer(writer, runConfig.ContainerName) return stager.ValidateStagedApp(utils.CloudfockerHome()) }
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/") }
It("should tell Docker to import the rootfs from the supplied URL", func() { url := "http://test.com/test-img" fakeDockerClient = new(FakeDockerClient) stdout, stdoutPipe := io.Pipe() docker.ImportRootfsImage(fakeDockerClient, stdout, stdoutPipe, buffer, url) Expect(len(fakeDockerClient.cmdImportArgs)).To(Equal(2)) Expect(fakeDockerClient.cmdImportArgs[0]).To(Equal("http://test.com/test-img")) Expect(fakeDockerClient.cmdImportArgs[1]).To(Equal("cloudfocker-base")) }) }) Describe("Running a configured container", func() { It("should tell Docker to run the container with the correct arguments", func() { fakeDockerClient = new(FakeDockerClient) stdout, stdoutPipe := io.Pipe() docker.RunConfiguredContainer(fakeDockerClient, stdout, stdoutPipe, buffer, config.NewStageRunConfig("/tmp/fakeappdir")) Expect(len(fakeDockerClient.cmdRunArgs)).To(Equal(12)) Expect(fakeDockerClient.cmdRunArgs[11]).To(Equal("internal")) }) }) Describe("Stopping the docker container", func() { It("should tell Docker to stop the container", func() { fakeDockerClient = new(FakeDockerClient) stdout, stdoutPipe := io.Pipe() docker.StopContainer(fakeDockerClient, stdout, stdoutPipe, buffer, "cloudfocker-container") Expect(len(fakeDockerClient.cmdStopArgs)).To(Equal(1)) Expect(fakeDockerClient.cmdStopArgs[0]).To(Equal("cloudfocker-container")) }) })