diff --git a/client/container.go b/client/container.go index a060bc1..2d17fa2 100644 --- a/client/container.go +++ b/client/container.go @@ -45,6 +45,10 @@ func PrintStartContainer(d *docker.DockerVM){ fmt.Println("SSH password: " + fmt.Sprint(d.SSHPassword)) fmt.Println("VNC port: " + fmt.Sprint(d.VNCPort)) fmt.Println("VNC password: " + fmt.Sprint(d.VNCPassword)) + fmt.Println("Ports Open") + for i := range d.Ports { + fmt.Println(d.Ports[i]) + } } diff --git a/p2p-rendering-computation b/p2p-rendering-computation new file mode 100755 index 0000000..8303847 Binary files /dev/null and b/p2p-rendering-computation differ diff --git a/server/docker/docker.go b/server/docker/docker.go index 2c4d9c3..3a1de72 100644 --- a/server/docker/docker.go +++ b/server/docker/docker.go @@ -56,7 +56,6 @@ func BuildRunContainer(NumPorts int) (*DockerVM,error) { for i := 2; i < count; i++ { RespDocker.Ports = append(RespDocker.Ports, Ports[i]) } - //fmt.Println(Ports[0]) // Sets Free port to Struct RespDocker.SSHPort = Ports[0] @@ -66,7 +65,6 @@ func BuildRunContainer(NumPorts int) (*DockerVM,error) { RespDocker.SSHUsername = "master" RespDocker.SSHPassword = "password" RespDocker.VNCPassword = "vncpassword" - RespDocker.Ports = Ports //Default parameters RespDocker.TagName = "p2p-ubuntu" @@ -127,14 +125,18 @@ func (d *DockerVM)imageBuild(dockerClient *client.Client) error { } // Starts container and assigns port numbers +// Sample Docker run Command +// docker run -d=true --name=Test123 --restart=always -p 3443:6901 -p 3453:22 +//-p 3434:3434 -p 3245:3245 -v=/opt/data:/data p2p-ubuntu /start > /dev/null func (d *DockerVM)runContainer(dockerClient *client.Client) error{ ctx, _ := context.WithTimeout(context.Background(), time.Second*2000) + //Exposed ports for docker config file + var ExposedPort nat.PortSet - config := &container.Config{ - Image : d.TagName, - Entrypoint: [] string {"/dockerstartup/vnc_startup.sh","/start"}, - Volumes: map[string]struct{}{"/opt/data:/data":{}}, + ExposedPort = nat.PortSet{ + "22/tcp": struct{}{}, + "6901/tcp": struct{}{}, } // Port forwarding for VNC and SSH ports @@ -153,14 +155,16 @@ func (d *DockerVM)runContainer(dockerClient *client.Client) error{ }, } - // Opening other ports (At the current moment only TCP ports can be - // opened for i := range d.Ports { + Port, err := nat.NewPort("tcp",fmt.Sprint(d.Ports[i])) if err != nil { return err } + // Exposed Ports + ExposedPort[Port] = struct{}{} + PortForwarding[Port] = []nat.PortBinding{ { HostIP: "0.0.0.0", @@ -169,6 +173,13 @@ func (d *DockerVM)runContainer(dockerClient *client.Client) error{ } } + + config := &container.Config{ + Image : d.TagName, + Entrypoint: [] string {"/dockerstartup/vnc_startup.sh","/start"}, + Volumes: map[string]struct{}{"/opt/data:/data":{}}, + ExposedPorts: ExposedPort, + } hostConfig := &container.HostConfig{ PortBindings: PortForwarding, } @@ -196,7 +207,6 @@ func print(rd io.Reader) error { scanner := bufio.NewScanner(rd) for scanner.Scan() { lastLine = scanner.Text() - fmt.Println(scanner.Text()) } errLine := &ErrorLine{} diff --git a/server/docker/docker_test.go b/server/docker/docker_test.go index 04a23cd..d7e6520 100644 --- a/server/docker/docker_test.go +++ b/server/docker/docker_test.go @@ -6,7 +6,7 @@ import ( ) func TestDocker(t *testing.T) { - resp,err := BuildRunContainer() + resp,err := BuildRunContainer(2) if err != nil { t.Error(err)