Code Monkey home page Code Monkey logo

gocker's Introduction

GOCKER

Gui on dOCKER

CI

gocker purpose is to add a GUI/TUI to local docker instances, it is largely inspired by K9S

  • view logs / all logs
  • inspect a container
  • sort containers by name/cpu usage/memory usage
  • kill an existing container
  • open a shell in docker instances
  • start/stop services in docker-compose
  • interact with supervisord instance within a container

asciicast

Shortcuts

╒═══════════╤═════════════════════════════╕
│ Key       │ Message                     │
╞═══════════╪═════════════════════════════╡
│ q         │ quit                        │
├───────────┼─────────────────────────────┤
│ ?         │ show help                   │
├───────────┼─────────────────────────────┤
│ k         │ kill container              │
├───────────┼─────────────────────────────┤
│           │ tag container               │
├───────────┼─────────────────────────────┤
│ i         │ inspect container           │
├───────────┼─────────────────────────────┤
│ s         │ shell in container          │
├───────────┼─────────────────────────────┤
│ s         │ start/stop in subprocess    │
├───────────┼─────────────────────────────┤
│ r         │ restart in subprocess       │
├───────────┼─────────────────────────────┤
│ s         │ start/stop composer service │
├───────────┼─────────────────────────────┤
│ <         │ previous sort column        │
├───────────┼─────────────────────────────┤
│ >         │ next sort column            │
├───────────┼─────────────────────────────┤
│ o         │ toggle sort order           │
├───────────┼─────────────────────────────┤
│ l         │ show logs                   │
├───────────┼─────────────────────────────┤
│ L         │ show all logs               │
├───────────┼─────────────────────────────┤
│ M         │ Add a marker in logs        │
├───────────┼─────────────────────────────┤
│ tab       │ select next pane            │
├───────────┼─────────────────────────────┤
│ shift tab │ select previous pane        │
╘═══════════╧═════════════════════════════╛

Installation

pip install git+https://github.com/micoli/gocker.git

or for upgrade

pip install --upgrade --force-reinstall git+https://github.com/micoli/gocker.git

depending of your installation pip can be replaced by pip3

Container specific labels

supervisord

  svc-XXXX:
    ...
    labels:
      - 'gocker-pm2={"host":"127.0.0.1","port": 13129,"username": "admin","password": "admin"}'
    ...
    ports:
      - 13129:9615

auto open log

  svc-XXXX:
    ...
    labels:
      - 'gocker-log=true'
    ...

example:

Commands

Help

usage: gocker [-h] [--action {gui,shortcut-list}] [--verbose] [--debug]
              [--docker-host DOCKER_HOST]
              [--fsevents-address FSEVENTS_ADDRESS]
              [--fsevents-port FSEVENTS_PORT]

gocker

optional arguments:
  -h, --help            show this help message and exit
  --action {gui,shortcut-list}
  --verbose             Be verbose
  --debug               Be very verbose
  --docker-host DOCKER_HOST
                        docker-host
  --fsevents-address FSEVENTS_ADDRESS
                        fsevents log address
  --fsevents-port FSEVENTS_PORT
                        fsevents log port

Merge requests are welcomed

TODO

  • plugin events messenger
  • pm2 subprocesses
  • local minimalist htop

Test with different python version:

docker run --rm -it -v $PWD:/app -v /var/run/docker.sock:/var/run/docker.sock python:3.7.13-buster bash

in docker :

cd /app;
export DOCKERVERSION=18.03.1-ce;
curl -fsSLO https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKERVERSION}.tgz && tar xzvf docker-${DOCKERVERSION}.tgz --strip 1 -C /usr/local/bin docker/docker && rm docker-${DOCKERVERSION}.tgz
docker ps
curl --silent -XGET --unix-socket /run/docker.sock http://localhost/version
./setup.py develop
gocker --docker-host unix:///var/run/docker.sock

gocker's People

Contributors

micoli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

world9781

gocker's Issues

Trying to develop on gocker fails to build environment with pip install -e .

m/pypa/pip/issues/8559
  Running setup.py install for dependency-injector ... error
  error: subprocess-exited-with-error

  × Running setup.py install for dependency-injector did not run successfully.
  │ exit code: 1
  ╰─> [34 lines of output]
      running install
      /home/jgart/gocker/.venv/lib/python3.11/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-311
      creating build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/wiring.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/schema.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/resources.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/errors.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/__init__.py -> build/lib.linux-x86_64-cpython-311/dependency_injector
      creating build/lib.linux-x86_64-cpython-311/dependency_injector/ext
      copying src/dependency_injector/ext/flask.py -> build/lib.linux-x86_64-cpython-311/dependency_injector/ext
      copying src/dependency_injector/ext/aiohttp.py -> build/lib.linux-x86_64-cpython-311/dependency_injector/ext
      copying src/dependency_injector/ext/__init__.py -> build/lib.linux-x86_64-cpython-311/dependency_injector/ext
      copying src/dependency_injector/providers.pxd -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/containers.pxd -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/providers.pyi -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/containers.pyi -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/__init__.pyi -> build/lib.linux-x86_64-cpython-311/dependency_injector
      copying src/dependency_injector/py.typed -> build/lib.linux-x86_64-cpython-311/dependency_injector
      running build_ext
      building 'dependency_injector.containers' extension
      creating build/temp.linux-x86_64-cpython-311
      creating build/temp.linux-x86_64-cpython-311/src
      creating build/temp.linux-x86_64-cpython-311/src/dependency_injector
      x86_64-unknown-linux-gnu-gcc -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe -g -fstack-clash-protection -D_FORTIFY_SOURCE=2 -mtune=generic -O2 -pipe -g -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/home/jgart/gocker/.venv/include -I/usr/include/python3.11 -c src/dependency_injector/containers.c -o build/temp.linux-x86_64-cpython-311/src/dependency_injector/containers.o
-O2
      src/dependency_injector/containers.c:6:10: fatal error: Python.h: No such file or directory
          6 | #include "Python.h"
            |          ^~~~~~~~~~
      compilation terminated.
      error: command '/bin/x86_64-unknown-linux-gnu-gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> dependency-injector

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

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.