mirror of https://github.com/docker/docs.git
FIX #1858 Add engine port
Added flag `--generic-engine-port` to `generic` drive in order to specify other port than `2376` on Docker engine. Updated `generic` driver documentation. Signed-off-by: Tiago Pires <tandrepires@gmail.com>
This commit is contained in:
parent
ccc5fe6c7d
commit
63ea976b1d
|
@ -62,6 +62,7 @@ as a sudoer with `NOPASSWD`. See https://help.ubuntu.com/community/Sudoers.
|
||||||
|
|
||||||
### Options
|
### Options
|
||||||
|
|
||||||
|
- `--generic-engine-port`: Port to use for Docker Daemon (Note: This flag will not work with boot2docker).
|
||||||
- `--generic-ip-address`: **required** IP Address of host.
|
- `--generic-ip-address`: **required** IP Address of host.
|
||||||
- `--generic-ssh-key`: Path to the SSH user private key.
|
- `--generic-ssh-key`: Path to the SSH user private key.
|
||||||
- `--generic-ssh-user`: SSH username used to connect.
|
- `--generic-ssh-user`: SSH username used to connect.
|
||||||
|
@ -73,6 +74,7 @@ Environment variables and default values:
|
||||||
|
|
||||||
| CLI option | Environment variable | Default |
|
| CLI option | Environment variable | Default |
|
||||||
| -------------------------- | -------------------- | ------------------------- |
|
| -------------------------- | -------------------- | ------------------------- |
|
||||||
|
| `--generic-engine-port` | `GENERIC_ENGINE_PORT`| `2376` |
|
||||||
| **`--generic-ip-address`** | `GENERIC_IP_ADDRESS` | - |
|
| **`--generic-ip-address`** | `GENERIC_IP_ADDRESS` | - |
|
||||||
| `--generic-ssh-key` | `GENERIC_SSH_KEY` | _(defers to `ssh-agent`)_ |
|
| `--generic-ssh-key` | `GENERIC_SSH_KEY` | _(defers to `ssh-agent`)_ |
|
||||||
| `--generic-ssh-user` | `GENERIC_SSH_USER` | `root` |
|
| `--generic-ssh-user` | `GENERIC_SSH_USER` | `root` |
|
||||||
|
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/docker/machine/libmachine/drivers"
|
"github.com/docker/machine/libmachine/drivers"
|
||||||
|
"github.com/docker/machine/libmachine/engine"
|
||||||
"github.com/docker/machine/libmachine/log"
|
"github.com/docker/machine/libmachine/log"
|
||||||
"github.com/docker/machine/libmachine/mcnflag"
|
"github.com/docker/machine/libmachine/mcnflag"
|
||||||
"github.com/docker/machine/libmachine/mcnutils"
|
"github.com/docker/machine/libmachine/mcnutils"
|
||||||
|
@ -17,7 +18,8 @@ import (
|
||||||
|
|
||||||
type Driver struct {
|
type Driver struct {
|
||||||
*drivers.BaseDriver
|
*drivers.BaseDriver
|
||||||
SSHKey string
|
EnginePort int
|
||||||
|
SSHKey string
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -28,6 +30,12 @@ const (
|
||||||
// "docker hosts create"
|
// "docker hosts create"
|
||||||
func (d *Driver) GetCreateFlags() []mcnflag.Flag {
|
func (d *Driver) GetCreateFlags() []mcnflag.Flag {
|
||||||
return []mcnflag.Flag{
|
return []mcnflag.Flag{
|
||||||
|
mcnflag.IntFlag{
|
||||||
|
Name: "generic-engine-port",
|
||||||
|
Usage: "Docker engine port",
|
||||||
|
Value: engine.DefaultPort,
|
||||||
|
EnvVar: "GENERIC_ENGINE_PORT",
|
||||||
|
},
|
||||||
mcnflag.StringFlag{
|
mcnflag.StringFlag{
|
||||||
Name: "generic-ip-address",
|
Name: "generic-ip-address",
|
||||||
Usage: "IP Address of machine",
|
Usage: "IP Address of machine",
|
||||||
|
@ -57,6 +65,7 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
|
||||||
// NewDriver creates and returns a new instance of the driver
|
// NewDriver creates and returns a new instance of the driver
|
||||||
func NewDriver(hostName, storePath string) drivers.Driver {
|
func NewDriver(hostName, storePath string) drivers.Driver {
|
||||||
return &Driver{
|
return &Driver{
|
||||||
|
EnginePort: engine.DefaultPort,
|
||||||
BaseDriver: &drivers.BaseDriver{
|
BaseDriver: &drivers.BaseDriver{
|
||||||
MachineName: hostName,
|
MachineName: hostName,
|
||||||
StorePath: storePath,
|
StorePath: storePath,
|
||||||
|
@ -89,6 +98,7 @@ func (d *Driver) GetSSHKeyPath() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
|
func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
|
||||||
|
d.EnginePort = flags.Int("generic-engine-port")
|
||||||
d.IPAddress = flags.String("generic-ip-address")
|
d.IPAddress = flags.String("generic-ip-address")
|
||||||
d.SSHUser = flags.String("generic-ssh-user")
|
d.SSHUser = flags.String("generic-ssh-user")
|
||||||
d.SSHKey = flags.String("generic-ssh-key")
|
d.SSHKey = flags.String("generic-ssh-key")
|
||||||
|
@ -142,7 +152,7 @@ func (d *Driver) GetURL() (string, error) {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
return fmt.Sprintf("tcp://%s", net.JoinHostPort(ip, "2376")), nil
|
return fmt.Sprintf("tcp://%s", net.JoinHostPort(ip, strconv.Itoa(d.EnginePort))), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) GetState() (state.State, error) {
|
func (d *Driver) GetState() (state.State, error) {
|
||||||
|
|
|
@ -12,8 +12,9 @@ func TestSetConfigFromFlags(t *testing.T) {
|
||||||
|
|
||||||
checkFlags := &drivers.CheckDriverOptions{
|
checkFlags := &drivers.CheckDriverOptions{
|
||||||
FlagsValues: map[string]interface{}{
|
FlagsValues: map[string]interface{}{
|
||||||
"generic-ip-address": "localhost",
|
"generic-engine-port": "3000",
|
||||||
"generic-ssh-key": "path",
|
"generic-ip-address": "localhost",
|
||||||
|
"generic-ssh-key": "path",
|
||||||
},
|
},
|
||||||
CreateFlags: driver.GetCreateFlags(),
|
CreateFlags: driver.GetCreateFlags(),
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package provision
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/docker/machine/libmachine/auth"
|
"github.com/docker/machine/libmachine/auth"
|
||||||
|
@ -30,15 +31,30 @@ func configureSwarm(p Provisioner, swarmOptions swarm.Options, authOptions auth.
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
parts := strings.Split(u.Host, ":")
|
enginePort := engine.DefaultPort
|
||||||
|
engineURL, err := p.GetDriver().GetURL()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
parts := strings.Split(engineURL, ":")
|
||||||
|
if len(parts) == 3 {
|
||||||
|
dPort, err := strconv.Atoi(parts[2])
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
enginePort = dPort
|
||||||
|
}
|
||||||
|
|
||||||
|
parts = strings.Split(u.Host, ":")
|
||||||
port := parts[1]
|
port := parts[1]
|
||||||
|
|
||||||
dockerDir := p.GetDockerOptionsDir()
|
dockerDir := p.GetDockerOptionsDir()
|
||||||
dockerHost := &mcndockerclient.RemoteDocker{
|
dockerHost := &mcndockerclient.RemoteDocker{
|
||||||
HostURL: fmt.Sprintf("tcp://%s:%d", ip, engine.DefaultPort),
|
HostURL: fmt.Sprintf("tcp://%s:%d", ip, enginePort),
|
||||||
AuthOption: &authOptions,
|
AuthOption: &authOptions,
|
||||||
}
|
}
|
||||||
advertiseInfo := fmt.Sprintf("%s:%d", ip, engine.DefaultPort)
|
advertiseInfo := fmt.Sprintf("%s:%d", ip, enginePort)
|
||||||
|
|
||||||
if swarmOptions.Master {
|
if swarmOptions.Master {
|
||||||
advertiseMasterInfo := fmt.Sprintf("%s:%s", ip, "3376")
|
advertiseMasterInfo := fmt.Sprintf("%s:%s", ip, "3376")
|
||||||
|
|
Loading…
Reference in New Issue