mirror of
https://github.com/docker/compose.git
synced 2025-07-25 22:54:54 +02:00
Merge pull request #1024 from gtardif/fix_volume_ensure
This commit is contained in:
commit
18db1c87ce
@ -1086,24 +1086,24 @@ func (s *composeService) ensureVolume(ctx context.Context, volume types.VolumeCo
|
|||||||
// TODO could identify volume by label vs name
|
// TODO could identify volume by label vs name
|
||||||
_, err := s.apiClient.VolumeInspect(ctx, volume.Name)
|
_, err := s.apiClient.VolumeInspect(ctx, volume.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errdefs.IsNotFound(err) {
|
if !errdefs.IsNotFound(err) {
|
||||||
eventName := fmt.Sprintf("Volume %q", volume.Name)
|
return err
|
||||||
w := progress.ContextWriter(ctx)
|
|
||||||
w.Event(progress.CreatingEvent(eventName))
|
|
||||||
// TODO we miss support for driver_opts and labels
|
|
||||||
_, err := s.apiClient.VolumeCreate(ctx, mobyvolume.VolumeCreateBody{
|
|
||||||
Labels: volume.Labels,
|
|
||||||
Name: volume.Name,
|
|
||||||
Driver: volume.Driver,
|
|
||||||
DriverOpts: volume.DriverOpts,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
w.Event(progress.ErrorEvent(eventName))
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
w.Event(progress.CreatedEvent(eventName))
|
|
||||||
}
|
}
|
||||||
return err
|
eventName := fmt.Sprintf("Volume %q", volume.Name)
|
||||||
|
w := progress.ContextWriter(ctx)
|
||||||
|
w.Event(progress.CreatingEvent(eventName))
|
||||||
|
// TODO we miss support for driver_opts and labels
|
||||||
|
_, err := s.apiClient.VolumeCreate(ctx, mobyvolume.VolumeCreateBody{
|
||||||
|
Labels: volume.Labels,
|
||||||
|
Name: volume.Name,
|
||||||
|
Driver: volume.Driver,
|
||||||
|
DriverOpts: volume.DriverOpts,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
w.Event(progress.ErrorEvent(eventName))
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
w.Event(progress.CreatedEvent(eventName))
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -95,12 +95,14 @@ func TestLocalComposeVolume(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("up with build and no image name, volume", func(t *testing.T) {
|
t.Run("up with build and no image name, volume", func(t *testing.T) {
|
||||||
//ensure local test run does not reuse previously build image
|
//ensure local test run does not reuse previously build image
|
||||||
c.RunDockerOrExitError("--context", "default", "rmi", "compose-e2e-volume_nginx")
|
c.RunDockerOrExitError("rmi", "compose-e2e-volume_nginx")
|
||||||
|
c.RunDockerOrExitError("volume", "rm", projectName+"_staticVol")
|
||||||
c.RunDockerCmd("compose", "up", "-d", "--workdir", "volume-test", "--project-name", projectName)
|
c.RunDockerCmd("compose", "up", "-d", "--workdir", "volume-test", "--project-name", projectName)
|
||||||
|
|
||||||
output := HTTPGetWithRetry(t, "http://localhost:8090", http.StatusOK, 2*time.Second, 20*time.Second)
|
output := HTTPGetWithRetry(t, "http://localhost:8090", http.StatusOK, 2*time.Second, 20*time.Second)
|
||||||
assert.Assert(t, strings.Contains(output, "Hello from Nginx container"))
|
assert.Assert(t, strings.Contains(output, "Hello from Nginx container"))
|
||||||
|
|
||||||
_ = c.RunDockerCmd("compose", "down", "--project-name", projectName)
|
_ = c.RunDockerCmd("compose", "down", "--project-name", projectName)
|
||||||
|
_ = c.RunDockerCmd("volume", "rm", projectName+"_staticVol")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -5,3 +5,13 @@ services:
|
|||||||
- ./static:/usr/share/nginx/html
|
- ./static:/usr/share/nginx/html
|
||||||
ports:
|
ports:
|
||||||
- 8090:80
|
- 8090:80
|
||||||
|
|
||||||
|
nginx2:
|
||||||
|
build: nginx-build
|
||||||
|
volumes:
|
||||||
|
- staticVol:/usr/share/nginx/html
|
||||||
|
ports:
|
||||||
|
- 9090:80
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
staticVol:
|
Loading…
x
Reference in New Issue
Block a user