Giter Site home page Giter Site logo

Comments (16)

francescou avatar francescou commented on July 19, 2024 1

added experimental UI in 4b040de

cc @dvdred

from docker-compose-ui.

francescou avatar francescou commented on July 19, 2024

Hello Mani,

it could be interesting to integrate a TTY in the application. I will investigate about the feasibility of this feature ASAP

from docker-compose-ui.

francescou avatar francescou commented on July 19, 2024

there is no standard way to open a terminal using docker-py (see docker/docker-py#390, docker/docker-py#239, docker/docker-py#389).
Maybe it could be possible using https://github.com/d11wtq/dockerpty (it is already used by docker-compose: https://github.com/docker/compose/blob/master/requirements.txt#L4) but I didn't find a way to perform a docker exec -it $CONTAINER /bin/bash on a running container (there is also an issue about this: d11wtq/dockerpty#30)

from docker-compose-ui.

WTFKr0 avatar WTFKr0 commented on July 19, 2024

Hi !

Any news on that feature ?

from docker-compose-ui.

francescou avatar francescou commented on July 19, 2024

I did some test with the latest docker pty
(see commit 258b7e0)

There is no GUI at the moment but you can try it from an HTTP client:

curl -X POST http://localhost:5000/api/v1/terminal -H'Content-type: application/json' --data '{"command":"ls -lrt /", "name":"node-redis", "id":"noderedis_redis_1"}'

from docker-compose-ui.

francescou avatar francescou commented on July 19, 2024

current solution, based on exec_create and exec_start is too limiting: there is no way to run interactive commands (e.g. redis-cli). I guess a better alternative would be to use websockets.

from docker-compose-ui.

allamand avatar allamand commented on July 19, 2024

Hi Guys,

You can perform this using shipyard project you can set-up on top of existing docker or swarm cluster.

I used this compose to launch shipyard with docker-ui on a swarm with a Traefik proxy for routing

version: '2'

services:
 rethinkdb:
    image: rethinkdb:latest
    labels:
      - "traefik.enable=false"
    networks:
      - back

 shipyard:
    image: shipyard/shipyard:latest
    container_name: shipyard-controller
    restart: always
    expose:
      - "8080"
    depends_on: ["rethinkdb"]
    volumes:
      - /etc/docker/swarm:/ssl:ro
    command: |
      --debug
      server 
      -d tcp://10.234.172.115:3376 
      --tls-ca-cert=/ssl/ca.pem 
      --tls-cert=/ssl/server.pem 
      --tls-key=/ssl/server-key.pem
    labels:
      - "traefik.frontend.rule=Host:shipyard.mydomain.com"
      - "traefik.docker.network=traefik_net"
    networks:
      - traefik_net
      - back

networks:
  traefik_net:
      external: true
  back:
    driver: overlay

from docker-compose-ui.

mkscala avatar mkscala commented on July 19, 2024

@allamand , shipyard integration gives an CLI or Unix like web Terminal UI ?

from docker-compose-ui.

allamand avatar allamand commented on July 19, 2024

@murugesh it's a unix like terminal ui (a console in the browser) I can show example if you like, I launch my shipyard using compose-ui

Sébastien

Le 17 nov. 2016 à 19:04, Murugesh [email protected] a écrit :

@allamand , shipyard integration gives an CLI or Unix like web Terminal UI ?


You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.

from docker-compose-ui.

mkscala avatar mkscala commented on July 19, 2024

I would live to see the example, how can you show me?

from docker-compose-ui.

mkscala avatar mkscala commented on July 19, 2024

I would love to see the example, how can you show me?

from docker-compose-ui.

allamand avatar allamand commented on July 19, 2024

I used this compose file : https://gist.github.com/allamand/e4f6a6229804007fa8f1a37761745031.

I din't saw the entire video but it should create something like this https://www.youtube.com/watch?v=aLlp-kemx_s

from docker-compose-ui.

MichaelMackus avatar MichaelMackus commented on July 19, 2024

Looks like there's an API method in Docker Engine which exposes the raw stream from the docker exec. Here is the relevant code from Shipyard which seems to just connect to that endpoint & open it up with websockets.

@francescou would you accept PRs for similar functionality? Seems like its all implemented in Docker Engine, so the missing piece would be the Websocket connection (likely from some Python websocket library).

from docker-compose-ui.

francescou avatar francescou commented on July 19, 2024

@MichaelMackus I would be really interested. I've also made some experiments with websockets in python/Flask (using gevent, see #14) but I didn't like how these framework worked together.

from docker-compose-ui.

MichaelMackus avatar MichaelMackus commented on July 19, 2024

Good to hear! I did try some experimenting with Websockets as well, but I'm still trying to wrap my head around the protocol (& integrating it with Flask). I'll let you know what I find.

from docker-compose-ui.

francescou avatar francescou commented on July 19, 2024

This feature has been released in francescou/docker-compose-ui:1.8.0 thanks to #91

instructions:

from docker-compose-ui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.