jesseduffield / lazydocker

The lazier way to manage everything docker
MIT License
36.33k stars 1.18k forks source link

Feature request: show container names #40

Open mudasar187 opened 5 years ago

mudasar187 commented 5 years ago

Hi, i'v tested out lazydocker today and i love it! A feature to have is to have names on the containers where the Services window is.

I have a docker-compose.yml file:

version: '3.7'

services:
  mongodb:
    image: mongo
    container_name: "db_app"
    ports:
      - "27017:27017"

  frontend:
    image: quizgame/webclient
    container_name: "web_app"
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:3000"
    environment:
      - NODE_ENV=docker
    depends_on:
      - mongodb

In Services window, there is to running containers.

running frontend 0.00%
running mongodb 0.35%

It should be:

running frontend (web_app) 0.00%
running mongodb (db_app) 0.35%

Love this tool!

jesseduffield commented 5 years ago

Sounds like a reasonable request. Given that there if often not much horizontal space, I'm inclined to make this a user configurable thing that defaults to false. Something like:

gui:
  showContainerName: true

What are your thoughts on that approach?

As for implementation, It would be fairly trivial to write the code, it would just be a matter of changing the GetDisplayStrings() function in pkg/commands/service.go. I'm happy to label this as Good First Issue and see if anybody wants to pick it up (I'm happy to lend a hand) :)

mudasar187 commented 5 years ago

Nice to hear :)

My thoughts is, make it default:

gui:
    showContainerName: true

And if someone dont want the container name then they can set it to false. If if there is no more space in horizontal then you can show like these examples:

running thisIsNameOfService (..) 0.00% (service name is long then add (..) to container name same on the other way.

And when you click on this service it will show a header on the left windows where Logs, Stats, Container Config, Top is and show the container name on the header.

pvande commented 5 years ago

My $0.02: I don't really want or need to see the container name in the sidebar (in the header of the main panel would be great though!) unless the service has a dynamic container_name. Knowing what directory lazydocker is running in would be more useful.

My primary use case is in development, where I run a few distinct projects that share service names. My services have static container names to make linking them together easier, and I'm never running a service as more than a single instance. If/when I cannot supply a container name (e.g. swarms), I'd still like to see the service listed, along with the specific containers.

jesseduffield commented 5 years ago

@pvande how about instead of having lazydocker in the status panel in the top left, we have the name of the current directory?

As for dynamic container names, I wonder how easy it is to see if a container name is dynamic.

@mudasar187 I'm hesitant to use the ellipsis approach because it seems to me that people either want to know what the container name is or not, and if they have no way to expand the width of the side panels, they can't really access that information. This makes me think we should probably support having a short and long sidepanel view for when you want everything you need in tabular form, but that's a separate issue.

If we could find a way to check if a container name was dynamic, and if so, show it in brackets, would that satisfy both your use cases?

mudasar187 commented 5 years ago

@jesseduffield Yeah, i think thats a better suggestion :)

pvande commented 5 years ago

@jesseduffield I would have suggested putting it in that status panel, but I didn't want to suggest losing the branding!

As for dynamic container names, I'm more or less working from the definition "the docker-compose service does not specify a container_name key". That may not be perfectly adequate, but it seems like a good starting point.

pvande commented 5 years ago

Given that Container names may be long, and Services may have multiple containers associated with them, I'm increasingly inclined towards a UI like this:

image

I would be curious to hear what other people think of this, and how other people would expect it to work. If there's enough interest in this approach, I may go ahead and try to move it forward myself...

punk-dev-robot commented 4 years ago

Happy to have a look into this over christmas break if that's ok

dawidd6 commented 4 years ago

Please, go ahead.

mihirsn commented 4 years ago

Hi, is anyone working on it, otherwise I would like to pick this up