github.com/cptung/libcompose@v0.4.3/integration/volume_test.go (about) 1 package integration 2 3 import ( 4 "fmt" 5 "os/exec" 6 "path/filepath" 7 8 . "gopkg.in/check.v1" 9 ) 10 11 func (s *CliSuite) TestVolumeFromService(c *C) { 12 p := s.RandomProject() 13 cmd := exec.Command(s.command, "-f", "./assets/regression/60-volume_from.yml", "-p", p, "create") 14 err := cmd.Run() 15 c.Assert(err, IsNil) 16 17 volumeFromContainer := fmt.Sprintf("%s_%s_1", p, "first") 18 secondContainerName := p + "_second_1" 19 20 cn := s.GetContainerByName(c, secondContainerName) 21 c.Assert(cn, NotNil) 22 23 c.Assert(len(cn.HostConfig.VolumesFrom), Equals, 1) 24 c.Assert(cn.HostConfig.VolumesFrom[0], Equals, volumeFromContainer) 25 } 26 27 func (s *CliSuite) TestVolumeFromServiceWithContainerName(c *C) { 28 p := s.RandomProject() 29 cmd := exec.Command(s.command, "-f", "./assets/regression/volume_from_container_name.yml", "-p", p, "create") 30 err := cmd.Run() 31 c.Assert(err, IsNil) 32 33 volumeFromContainer := "first_container_name" 34 secondContainerName := p + "_second_1" 35 36 cn := s.GetContainerByName(c, secondContainerName) 37 c.Assert(cn, NotNil) 38 39 c.Assert(len(cn.HostConfig.VolumesFrom), Equals, 1) 40 c.Assert(cn.HostConfig.VolumesFrom[0], Equals, volumeFromContainer) 41 } 42 43 func (s *CliSuite) TestRelativeVolume(c *C) { 44 p := s.ProjectFromText(c, "up", ` 45 server: 46 image: busybox 47 volumes: 48 - .:/path 49 `) 50 51 absPath, err := filepath.Abs(".") 52 c.Assert(err, IsNil) 53 serverName := fmt.Sprintf("%s_%s_1", p, "server") 54 cn := s.GetContainerByName(c, serverName) 55 56 c.Assert(cn, NotNil) 57 c.Assert(len(cn.Mounts), DeepEquals, 1) 58 c.Assert(cn.Mounts[0].Source, DeepEquals, absPath) 59 c.Assert(cn.Mounts[0].Destination, DeepEquals, "/path") 60 } 61 62 func (s *CliSuite) TestNamedVolume(c *C) { 63 p := s.ProjectFromText(c, "up", ` 64 server: 65 image: busybox 66 volumes: 67 - vol:/path 68 `) 69 70 serverName := fmt.Sprintf("%s_%s_1", p, "server") 71 cn := s.GetContainerByName(c, serverName) 72 73 c.Assert(cn, NotNil) 74 c.Assert(len(cn.Mounts), DeepEquals, 1) 75 c.Assert(cn.Mounts[0].Name, DeepEquals, "vol") 76 c.Assert(cn.Mounts[0].Destination, DeepEquals, "/path") 77 } 78 79 func (s *CliSuite) TestV2Volume(c *C) { 80 testRequires(c, not(DaemonVersionIs("1.9"))) 81 p := s.ProjectFromText(c, "up", `version: "2" 82 services: 83 with_volume: 84 image: busybox 85 volumes: 86 - test:/test 87 88 volumes: 89 test: {} 90 test2: {} 91 `) 92 93 v := s.GetVolumeByName(c, p+"_test") 94 c.Assert(v, NotNil) 95 96 v = s.GetVolumeByName(c, p+"_test2") 97 c.Assert(v, NotNil) 98 }