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
|
||||
|
||||
- `--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-ssh-key`: Path to the SSH user private key.
|
||||
- `--generic-ssh-user`: SSH username used to connect.
|
||||
|
@ -73,6 +74,7 @@ Environment variables and default values:
|
|||
|
||||
| CLI option | Environment variable | Default |
|
||||
| -------------------------- | -------------------- | ------------------------- |
|
||||
| `--generic-engine-port` | `GENERIC_ENGINE_PORT`| `2376` |
|
||||
| **`--generic-ip-address`** | `GENERIC_IP_ADDRESS` | - |
|
||||
| `--generic-ssh-key` | `GENERIC_SSH_KEY` | _(defers to `ssh-agent`)_ |
|
||||
| `--generic-ssh-user` | `GENERIC_SSH_USER` | `root` |
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/docker/machine/libmachine/drivers"
|
||||
"github.com/docker/machine/libmachine/engine"
|
||||
"github.com/docker/machine/libmachine/log"
|
||||
"github.com/docker/machine/libmachine/mcnflag"
|
||||
"github.com/docker/machine/libmachine/mcnutils"
|
||||
|
@ -17,7 +18,8 @@ import (
|
|||
|
||||
type Driver struct {
|
||||
*drivers.BaseDriver
|
||||
SSHKey string
|
||||
EnginePort int
|
||||
SSHKey string
|
||||
}
|
||||
|
||||
const (
|
||||
|
@ -28,6 +30,12 @@ const (
|
|||
// "docker hosts create"
|
||||
func (d *Driver) GetCreateFlags() []mcnflag.Flag {
|
||||
return []mcnflag.Flag{
|
||||
mcnflag.IntFlag{
|
||||
Name: "generic-engine-port",
|
||||
Usage: "Docker engine port",
|
||||
Value: engine.DefaultPort,
|
||||
EnvVar: "GENERIC_ENGINE_PORT",
|
||||
},
|
||||
mcnflag.StringFlag{
|
||||
Name: "generic-ip-address",
|
||||
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
|
||||
func NewDriver(hostName, storePath string) drivers.Driver {
|
||||
return &Driver{
|
||||
EnginePort: engine.DefaultPort,
|
||||
BaseDriver: &drivers.BaseDriver{
|
||||
MachineName: hostName,
|
||||
StorePath: storePath,
|
||||
|
@ -89,6 +98,7 @@ func (d *Driver) GetSSHKeyPath() string {
|
|||
}
|
||||
|
||||
func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
|
||||
d.EnginePort = flags.Int("generic-engine-port")
|
||||
d.IPAddress = flags.String("generic-ip-address")
|
||||
d.SSHUser = flags.String("generic-ssh-user")
|
||||
d.SSHKey = flags.String("generic-ssh-key")
|
||||
|
@ -142,7 +152,7 @@ func (d *Driver) GetURL() (string, error) {
|
|||
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) {
|
||||
|
|
|
@ -12,8 +12,9 @@ func TestSetConfigFromFlags(t *testing.T) {
|
|||
|
||||
checkFlags := &drivers.CheckDriverOptions{
|
||||
FlagsValues: map[string]interface{}{
|
||||
"generic-ip-address": "localhost",
|
||||
"generic-ssh-key": "path",
|
||||
"generic-engine-port": "3000",
|
||||
"generic-ip-address": "localhost",
|
||||
"generic-ssh-key": "path",
|
||||
},
|
||||
CreateFlags: driver.GetCreateFlags(),
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package provision
|
|||
import (
|
||||
"fmt"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/docker/machine/libmachine/auth"
|
||||
|
@ -30,15 +31,30 @@ func configureSwarm(p Provisioner, swarmOptions swarm.Options, authOptions auth.
|
|||
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]
|
||||
|
||||
dockerDir := p.GetDockerOptionsDir()
|
||||
dockerHost := &mcndockerclient.RemoteDocker{
|
||||
HostURL: fmt.Sprintf("tcp://%s:%d", ip, engine.DefaultPort),
|
||||
HostURL: fmt.Sprintf("tcp://%s:%d", ip, enginePort),
|
||||
AuthOption: &authOptions,
|
||||
}
|
||||
advertiseInfo := fmt.Sprintf("%s:%d", ip, engine.DefaultPort)
|
||||
advertiseInfo := fmt.Sprintf("%s:%d", ip, enginePort)
|
||||
|
||||
if swarmOptions.Master {
|
||||
advertiseMasterInfo := fmt.Sprintf("%s:%s", ip, "3376")
|
||||
|
|
Loading…
Reference in New Issue