mrjackwills / oxker Goto Github PK
View Code? Open in Web Editor NEWA simple tui to view & control docker containers
License: MIT License
A simple tui to view & control docker containers
License: MIT License
container names are on the right side of the table, plus and trunkated even if there's some space so it not too easy to understand what its a container name
(on the image above, first line is "bitwarden" and second is "cloudflared")
Maybe its some idea behind, but at least have an option to switch to more "regular" view with "names" as first column, aligned to left side and trunkated to... 15-20 characters will be very helpful
Describe the bug
The new release workflow is building 4 images for GHCR, but it should only build 3.
See package here
To Reproduce
Expected behavior
should only build for linux/x86, linux/aarm64, and linux/armv6
Describe the bug
Oxker will not start.
To Reproduce
oxker
Trying to run oxker
with no-gui for debugging results in a permanent hang with no messages printed after
2023-07-19T15:35:29.173577Z INFO oxker: in debug mode
Expected behavior
A screen similar to that which is in the README screenshot. Essentially oxker should be aware of docker contexts, but must be aware of $DOCKER_HOST
if set.
Screenshots
Desktop (please complete the following information):
My socket is in ~/.orbstack/run/docker.sock
.
Additional context
Setting $DOCKER_HOST
does not help.
$ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
colima-vz-8 colima [profile=vz-8] unix:///Users/austin/.colima/vz-8/docker.sock
default Current DOCKER_HOST based configuration unix:///var/run/docker.sock
orbstack * OrbStack unix:///Users/austin/.orbstack/run/docker.sock
Hi, I discovered Oxker only a short time ago and I am delighted. I love how simple it is and its beautiful interface. So far I have been using ctop, it is not as nice but it has a feature that is a must for me which is "Exec Shell", that is, I can connect to the container through the console. The truth is that I would like to replace ctop by oxker for my daily use.
I would like to know if there are future plans to implement the connection to the container.
Screenshots:
https://i.imgur.com/7wIpc14.jpg
https://i.imgur.com/64L4EQw.jpg
Describe the bug
Multiple containers can have the same created_at timestamp, meaning sorting will result in different results
To Reproduce
Steps to reproduce the behavior:
Expected behavior
When no SortedOrder is set, containers should be sorted by a consistent behaviour
Additional context
Should try to create a unique created_at, could append something, such as the hashed name/image/id, to the created at, to make unique, sortable, value
Describe the solution you'd like
I would like an additional option to delete / remove containers. The current cotnainer options are start, pause, restart, and stop.
Is your feature request related to a problem? Please describe.
Enable copying of information when user presses the right mouse button, and maybe also when pressing 'c' button?
Describe the solution you'd like
If containers selected, copies container id(?), if logs selected, copies single log line
Describe the bug
Malformed color codes in docker log output cause panic (regardless of -c)
To Reproduce
ESC[\n
cansi::v3::categorise_text
)Here is a minimal demo of such a panic:
use cansi::v3::categorise_text;
fn main() {
let x = categorise_text("oops\x1b[\n");
println!("{}", x[0].text);
}
Expected behavior
Oxker is robust to garbage in log output
Desktop (please complete the following information):
I understand this may be considered an upstream issue of the cansi
crate; I've opened an issue there as well: colored-rs/cansi#7
Describe the solution you'd like
Supply both a Vertical(top, centre, bottom) and Horozontal(left, centre, right) enum to "centered_info" function, so that a popup dialog can be positioned in one of those 9 regions.
The popup_layout split would then take one of nine index options [0/1/2][0/1/2]
So that an info popup, e.g. when text has been copied, can be placed in a no distracting location
Is your feature request related to a problem? Please describe.
Would be great to have this tool published as a Docker image on the main Docker registry, and maybe ghcr.io and quay.io as well. This would allow running it anywhere where Docker is installed, without having to install any additional machinery.
Describe the solution you'd like
Having automated builds and publishing to popular Docker image registries.
Describe alternatives you've considered
None really ๐คท
Additional context
Currently using another popular Docker container dashboard called ctop
, and find oxker much nicer actually. Just would love to have it available as image so I could run it as follows:
docker run --rm -it --volume /var/run/docker.sock:/var/run/docker.sock:ro ghcr.io/mrjackwills/oxker:latest
I opened a pull request to package oxker
for nix package manager. Nix is highly focused on reproducibility and as a result requires the Cargo.lock
file to pin specific dependency versions, otherwise it is impossible to build a cargo project for nixpkgs. As a result I've had to generate the Cargo.lock
into a patch file to apply before building. This isn't ideal and makes maintaining more difficult as I will have to generate this file for every update.
Tracking the Cargo.lock
file also make sense outside of the nix ecosystem and is considered best practice for binary applications as stated in the cargo book.
Is your feature request related to a problem? Please describe.
Enable to export of logs to a .log(?) file
Describe the solution you'd like
On a key press - "e"? - export the selected containers logs to a file, made sure to strip of all ANSI formatting
Saved to a known location - home folder? - or allow user to choose
Is your feature request related to a problem? Please describe.
When restarting a container, the columns are still coloured as green
Describe the solution you'd like
A container in a restarting state should use a none green (as current), nor red/yellow color
Detach the internal data logic from the terminal, so that it can be used in a gui application (i.e via Tauri), split into workspaces? Or separate crates - with the data logic having a public api?
Additional context
Don't expect this to happen any time soon
Describe the bug
Hi, the memory stats does not match with the original docker stats
. Dozzle for example shows the correct stats but ctop (which seems abandoned) has a similar problem with the memory stats as oxker.
To Reproduce
Steps to reproduce the behavior:
docker stats
Expected behavior
The memory stats should be the same as docker stats
.
Desktop (please complete the following information):
Describe the bug
Have, on occasion, seen duplicate log entries in the log panel
To Reproduce
So far difficult to replicate
Expected behavior
Should only display each log entry once
Fixes
Should always record timestamp with each log entry, maybe in a tuple (timestamp, log_entry), and then only insert into the log Vec (or ideally a HashSet), if the (timestamp, log_entry) is unique.
Would need to change the way the -t
arg is interpreted in order to display, or not display, the timestamp
Describe the solution you'd like
Instead of "Logs 120/300", show "Logs 120/300 - my_container_name"
Additional context
Uses up more screen space, although currently is a border so shouldn't matter. Would need to make sure that container name isn't too long, maybe just accept first 32 chars of container name?
Describe the bug
When executed using the -c flag, multi-line coloured log entries only the first line of said entry has a colour applied to it
Expected behavior
All lines should correctly be colourised
Describe the bug
The loading icon in the heading bar is black on purple, and can be hard to read.
Loading icon shifting heading titles, shouldn't effect the heading positions
To Reproduce
Restart any container to see loading icon, and they headings shift
Expected behavior
Icon should be more visible and obvious, and shouldn't shift the heading titles
Additional context
Change the span to white
Describe the bug
When running via docker, if restart, pause, or exit, the oxker container, can cause havoc with the terminal output
Expected behavior
Shouldn't be allowed to send commands to the oxker container
Is your feature request related to a problem? Please describe.
Containers are always listed in the same order - based on age
Describe the solution you'd like
Enable, by clicking, or via key presses, the change the order of the containers based on each column
Is your feature request related to a problem? Please describe.
The each entry in the memory column are not aligned
0 B / 0 B
18.64 MB / 33.55 MB
9.76 MB / 16.78 MB
176.90 MB / 268.44 MB
Describe the solution you'd like
All three sections, the memory, the slash, and the limit, should be aligned with each other
0 B / 0 B
18.64 MB / 33.55 MB
9.76 MB / 16.78 MB
176.90 MB / 268.44 MB
Describe alternatives you've considered
Could just ignore this completely
Describe the solution you'd like
Add a column for exposed port(s) for each container - a single container could expose many ports, so need to think the best way to display this, and also if any all interfaces, or 127.0.0.1 etc, and local to host mappings
Additional context
Maybe, in a not to distant future, enable the user to select which columns should be visible, would need to save this data somewhere
Is your feature request related to a problem? Please describe.
Clicking a column will sort Ascending & Descending, but cannot reset the sort
Describe the solution you'd like
First click sorts ascending, second click sorts descending, third click removes all the sorts
Describe the bug
If oxker is running, and one rebuilds containers, oxker will error out with a unwrap error, related to app_data mod.rs 308:39
To Reproduce
Steps to reproduce the behavior:
docker compose pull && docker compose up -d
Expected behavior
Oxker should be able to handle rebuilt containers, should be removed from memory, and then re-added once rebuild is complete
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.