Signed-off-by: Daniel Nephin <dnephin@docker.com>
| ... | ... |
@@ -19,8 +19,8 @@ import ( |
| 19 | 19 |
"github.com/docker/docker/cli" |
| 20 | 20 |
"github.com/docker/docker/cli/command" |
| 21 | 21 |
servicecmd "github.com/docker/docker/cli/command/service" |
| 22 |
- runconfigopts "github.com/docker/docker/runconfig/opts" |
|
| 23 | 22 |
"github.com/docker/docker/opts" |
| 23 |
+ runconfigopts "github.com/docker/docker/runconfig/opts" |
|
| 24 | 24 |
"github.com/docker/go-connections/nat" |
| 25 | 25 |
) |
| 26 | 26 |
|
| ... | ... |
@@ -85,7 +85,12 @@ func runDeploy(dockerCli *command.DockerCli, opts deployOptions) error {
|
| 85 | 85 |
|
| 86 | 86 |
ctx := context.Background() |
| 87 | 87 |
namespace := namespace{name: opts.namespace}
|
| 88 |
- if err := createNetworks(ctx, dockerCli, config.Networks, namespace); err != nil {
|
|
| 88 |
+ |
|
| 89 |
+ networks := config.Networks |
|
| 90 |
+ if networks == nil {
|
|
| 91 |
+ networks = make(map[string]composetypes.NetworkConfig) |
|
| 92 |
+ } |
|
| 93 |
+ if err := createNetworks(ctx, dockerCli, networks, namespace); err != nil {
|
|
| 89 | 94 |
return err |
| 90 | 95 |
} |
| 91 | 96 |
return deployServices(ctx, dockerCli, config, namespace, opts.sendRegistryAuth) |
| ... | ... |
@@ -141,7 +141,6 @@ func (c *containerConfig) config() *enginecontainer.Config {
|
| 141 | 141 |
Labels: c.labels(), |
| 142 | 142 |
Tty: c.spec().TTY, |
| 143 | 143 |
User: c.spec().User, |
| 144 |
- Hostname: c.spec().Hostname, |
|
| 145 | 144 |
Env: c.spec().Env, |
| 146 | 145 |
Hostname: c.spec().Hostname, |
| 147 | 146 |
WorkingDir: c.spec().Dir, |
| ... | ... |
@@ -1,9 +1,6 @@ |
| 1 | 1 |
package main |
| 2 | 2 |
|
| 3 | 3 |
import ( |
| 4 |
- "io/ioutil" |
|
| 5 |
- "os" |
|
| 6 |
- |
|
| 7 | 4 |
"github.com/docker/docker/pkg/integration/checker" |
| 8 | 5 |
"github.com/go-check/check" |
| 9 | 6 |
) |
| ... | ... |
@@ -41,72 +38,26 @@ func (s *DockerSwarmSuite) TestStackServices(c *check.C) {
|
| 41 | 41 |
c.Assert(out, check.Equals, "Nothing found in stack: UNKNOWN_STACK\n") |
| 42 | 42 |
} |
| 43 | 43 |
|
| 44 |
-// testDAB is the DAB JSON used for testing. |
|
| 45 |
-// TODO: Use template/text and substitute "Image" with the result of |
|
| 46 |
-// `docker inspect --format '{{index .RepoDigests 0}}' busybox:latest`
|
|
| 47 |
-const testDAB = `{
|
|
| 48 |
- "Version": "0.1", |
|
| 49 |
- "Services": {
|
|
| 50 |
- "srv1": {
|
|
| 51 |
- "Image": "busybox@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0", |
|
| 52 |
- "Command": ["top"] |
|
| 53 |
- }, |
|
| 54 |
- "srv2": {
|
|
| 55 |
- "Image": "busybox@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0", |
|
| 56 |
- "Command": ["tail"], |
|
| 57 |
- "Args": ["-f", "/dev/null"] |
|
| 58 |
- } |
|
| 59 |
- } |
|
| 60 |
-}` |
|
| 61 |
- |
|
| 62 |
-func (s *DockerSwarmSuite) TestStackWithDAB(c *check.C) {
|
|
| 44 |
+func (s *DockerSwarmSuite) TestStackDeployComposeFile(c *check.C) {
|
|
| 63 | 45 |
testRequires(c, ExperimentalDaemon) |
| 64 |
- // setup |
|
| 65 |
- testStackName := "test" |
|
| 66 |
- testDABFileName := testStackName + ".dab" |
|
| 67 |
- defer os.RemoveAll(testDABFileName) |
|
| 68 |
- err := ioutil.WriteFile(testDABFileName, []byte(testDAB), 0444) |
|
| 69 |
- c.Assert(err, checker.IsNil) |
|
| 70 | 46 |
d := s.AddDaemon(c, true, true) |
| 71 |
- // deploy |
|
| 72 |
- stackArgs := []string{"stack", "deploy", testStackName}
|
|
| 47 |
+ |
|
| 48 |
+ testStackName := "testdeploy" |
|
| 49 |
+ stackArgs := []string{
|
|
| 50 |
+ "stack", "deploy", |
|
| 51 |
+ "--compose-file", "fixtures/deploy/default.yaml", |
|
| 52 |
+ testStackName, |
|
| 53 |
+ } |
|
| 73 | 54 |
out, err := d.Cmd(stackArgs...) |
| 55 |
+ c.Assert(err, checker.IsNil, check.Commentf(out)) |
|
| 56 |
+ |
|
| 57 |
+ out, err = d.Cmd([]string{"stack", "ls"}...)
|
|
| 74 | 58 |
c.Assert(err, checker.IsNil) |
| 75 |
- c.Assert(out, checker.Contains, "Loading bundle from test.dab\n") |
|
| 76 |
- c.Assert(out, checker.Contains, "Creating service test_srv1\n") |
|
| 77 |
- c.Assert(out, checker.Contains, "Creating service test_srv2\n") |
|
| 78 |
- // ls |
|
| 79 |
- stackArgs = []string{"stack", "ls"}
|
|
| 80 |
- out, err = d.Cmd(stackArgs...) |
|
| 81 |
- c.Assert(err, checker.IsNil) |
|
| 82 |
- c.Assert(out, check.Equals, "NAME SERVICES\n"+"test 2\n") |
|
| 83 |
- // rm |
|
| 84 |
- stackArgs = []string{"stack", "rm", testStackName}
|
|
| 85 |
- out, err = d.Cmd(stackArgs...) |
|
| 86 |
- c.Assert(err, checker.IsNil) |
|
| 87 |
- c.Assert(out, checker.Contains, "Removing service test_srv1\n") |
|
| 88 |
- c.Assert(out, checker.Contains, "Removing service test_srv2\n") |
|
| 89 |
- // ls (empty) |
|
| 90 |
- stackArgs = []string{"stack", "ls"}
|
|
| 91 |
- out, err = d.Cmd(stackArgs...) |
|
| 92 |
- c.Assert(err, checker.IsNil) |
|
| 93 |
- c.Assert(out, check.Equals, "NAME SERVICES\n") |
|
| 94 |
-} |
|
| 59 |
+ c.Assert(out, check.Equals, "NAME SERVICES\n"+"testdeploy 2\n") |
|
| 95 | 60 |
|
| 96 |
-func (s *DockerSwarmSuite) TestStackWithDABExtension(c *check.C) {
|
|
| 97 |
- testRequires(c, ExperimentalDaemon) |
|
| 98 |
- // setup |
|
| 99 |
- testStackName := "test.dab" |
|
| 100 |
- testDABFileName := testStackName |
|
| 101 |
- defer os.RemoveAll(testDABFileName) |
|
| 102 |
- err := ioutil.WriteFile(testDABFileName, []byte(testDAB), 0444) |
|
| 61 |
+ out, err = d.Cmd([]string{"stack", "rm", testStackName}...)
|
|
| 103 | 62 |
c.Assert(err, checker.IsNil) |
| 104 |
- d := s.AddDaemon(c, true, true) |
|
| 105 |
- // deploy |
|
| 106 |
- stackArgs := []string{"stack", "deploy", testStackName}
|
|
| 107 |
- out, err := d.Cmd(stackArgs...) |
|
| 63 |
+ out, err = d.Cmd([]string{"stack", "ls"}...)
|
|
| 108 | 64 |
c.Assert(err, checker.IsNil) |
| 109 |
- c.Assert(out, checker.Contains, "Loading bundle from test.dab\n") |
|
| 110 |
- c.Assert(out, checker.Contains, "Creating service test_srv1\n") |
|
| 111 |
- c.Assert(out, checker.Contains, "Creating service test_srv2\n") |
|
| 65 |
+ c.Assert(out, check.Equals, "NAME SERVICES\n") |
|
| 112 | 66 |
} |
| 113 | 67 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,9 @@ |
| 0 |
+ |
|
| 1 |
+version: "3" |
|
| 2 |
+services: |
|
| 3 |
+ web: |
|
| 4 |
+ image: busybox@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0 |
|
| 5 |
+ command: top |
|
| 6 |
+ db: |
|
| 7 |
+ image: busybox@sha256:e4f93f6ed15a0cdd342f5aae387886fba0ab98af0a102da6276eaf24d6e6ade0 |
|
| 8 |
+ command: "tail -f /dev/null" |