Skip to content

Commit

Permalink
feat: upgrade bento debugger image
Browse files Browse the repository at this point in the history
  • Loading branch information
yetone committed Dec 20, 2022
1 parent deb016e commit 341bb6e
Show file tree
Hide file tree
Showing 5 changed files with 243 additions and 3 deletions.
37 changes: 35 additions & 2 deletions container_images/bento-debugger/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
FROM debian:stable-slim as fetcher
COPY fetch_binaries.sh /tmp/fetch_binaries.sh

RUN apt-get update && apt-get install -y \
curl \
wget

RUN /tmp/fetch_binaries.sh

FROM python:3.11.0-slim-bullseye

RUN apt-get update
RUN apt-get install -y vim jq fping curl httpie iftop mtr dnsutils ldnsutils procps htop net-tools iproute2 tcpdump tcptraceroute strace sysstat iperf ngrep
RUN pip install ipython ipdb py-spy
RUN apt-get install -y vim jq fping curl iftop mtr dnsutils ldnsutils procps htop net-tools iproute2 ipset iptraf-ng tcpdump tcptraceroute strace sysstat iperf iperf3 ngrep zsh wget git
RUN pip install ipython ipdb py-spy httpie

# Installing ctop - top-like container monitor
COPY --from=fetcher /tmp/ctop /usr/local/bin/ctop

# Installing calicoctl
COPY --from=fetcher /tmp/calicoctl /usr/local/bin/calicoctl

# Installing termshark
COPY --from=fetcher /tmp/termshark /usr/local/bin/termshark

USER root
WORKDIR /root
ENV HOSTNAME bento-debugger

# ZSH Themes
RUN wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh || true
RUN git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
RUN git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
RUN git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
COPY zshrc .zshrc
COPY motd motd

# Running ZSH
CMD ["zsh"]
2 changes: 1 addition & 1 deletion container_images/bento-debugger/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
IMG ?= quay.io/bentoml/bento-debugger:0.0.6
IMG ?= quay.io/bentoml/bento-debugger:0.0.7

build:
docker build -t $(IMG) .
Expand Down
56 changes: 56 additions & 0 deletions container_images/bento-debugger/fetch_binaries.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/usr/bin/env bash
set -euo pipefail

get_latest_release() {
curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api
grep '"tag_name":' | # Get tag line
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
}


ARCH=$(uname -m)
case $ARCH in
x86_64)
ARCH=amd64
;;
aarch64)
ARCH=arm64
;;
esac

get_ctop() {
VERSION=$(get_latest_release bcicen/ctop | sed -e 's/^v//')
LINK="https://github.com/bcicen/ctop/releases/download/v${VERSION}/ctop-${VERSION}-linux-${ARCH}"
wget "$LINK" -O /tmp/ctop && chmod +x /tmp/ctop
}

get_calicoctl() {
VERSION=$(get_latest_release projectcalico/calicoctl)
LINK="https://github.com/projectcalico/calicoctl/releases/download/${VERSION}/calicoctl-linux-${ARCH}"
wget "$LINK" -O /tmp/calicoctl && chmod +x /tmp/calicoctl
}

get_termshark() {
case "$ARCH" in
"arm"*)
echo "echo termshark does not yet support arm" > /tmp/termshark && chmod +x /tmp/termshark
;;
*)
VERSION=$(get_latest_release gcla/termshark | sed -e 's/^v//')
if [ "$ARCH" == "amd64" ]; then
TERM_ARCH=x64
else
TERM_ARCH="$ARCH"
fi
LINK="https://github.com/gcla/termshark/releases/download/v${VERSION}/termshark_${VERSION}_linux_${TERM_ARCH}.tar.gz"
wget "$LINK" -O /tmp/termshark.tar.gz && \
tar -zxvf /tmp/termshark.tar.gz && \
mv "termshark_${VERSION}_linux_${TERM_ARCH}/termshark" /tmp/termshark && \
chmod +x /tmp/termshark
;;
esac
}

get_ctop
get_calicoctl
get_termshark
7 changes: 7 additions & 0 deletions container_images/bento-debugger/motd
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

██████╗░███████╗███╗░░██╗████████╗░█████╗░  ██████╗░███████╗██████╗░██╗░░░██╗░██████╗░░██████╗░███████╗██████╗░
██╔══██╗██╔════╝████╗░██║╚══██╔══╝██╔══██╗  ██╔══██╗██╔════╝██╔══██╗██║░░░██║██╔════╝░██╔════╝░██╔════╝██╔══██╗
██████╦╝█████╗░░██╔██╗██║░░░██║░░░██║░░██║  ██║░░██║█████╗░░██████╦╝██║░░░██║██║░░██╗░██║░░██╗░█████╗░░██████╔╝
██╔══██╗██╔══╝░░██║╚████║░░░██║░░░██║░░██║  ██║░░██║██╔══╝░░██╔══██╗██║░░░██║██║░░╚██╗██║░░╚██╗██╔══╝░░██╔══██╗
██████╦╝███████╗██║░╚███║░░░██║░░░╚█████╔╝  ██████╔╝███████╗██████╦╝╚██████╔╝╚██████╔╝╚██████╔╝███████╗██║░░██║
╚═════╝░╚══════╝╚═╝░░╚══╝░░░╚═╝░░░░╚════╝░  ╚═════╝░╚══════╝╚═════╝░░╚═════╝░░╚═════╝░░╚═════╝░╚══════╝╚═╝░░╚═╝
144 changes: 144 additions & 0 deletions container_images/bento-debugger/zshrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH

# Path to your oh-my-zsh installation.
export ZSH=$HOME/.oh-my-zsh

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
#export TERM="xterm-256color"
ZSH_THEME="powerlevel10k/powerlevel10k"

ZSH_DISABLE_COMPFIX="true"

# Set list of themes to load
# Setting this variable when ZSH_THEME=random
# cause zsh load theme from this variable instead of
# looking in ~/.oh-my-zsh/themes/
# An empty array have no effect
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )

# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"

# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"

# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"

# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13

# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"

# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"

# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"

# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"

# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"

# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"

# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
yarn
web-search
jsontools
macports
node
sudo
docker
)

source $ZSH/oh-my-zsh.sh
# User configuration
cat $HOME/motd

# export MANPATH="/usr/local/man:$MANPATH"

# You may need to manually set your language environment
# export LANG=en_US.UTF-8

# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi

# Compilation flags
# export ARCHFLAGS="-arch x86_64"

# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"

# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"

# test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"

# Reload the plugin to highlight the commands each time Iterm2 starts
#source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh


### VISUAL CUSTOMISATION ###
# Elements options of left prompt (remove the @username context)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(host dir rbenv)
# Elements options of right prompt
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
# Add a second prompt line for the command
POWERLEVEL9K_PROMPT_ON_NEWLINE=false

# Add a space in the first prompt
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=''

# Visual customisation of the second prompt line
#local user_symbol="$"
#if [[ $(print -P "%#") =~ "#" ]]; then
# user_symbol = "#"
#fi
#POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%{%B%F{black}%K{yellow}%} $user_symbol%{%b%f%k%F{yellow}%} %{%f%}"


# Change the git status to red when something isn't committed and pushed
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='red'

# Add a new line after the global prompt
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true


# Colorise the top Tabs of Iterm2 with the same color as background
# Just change the 18/26/33 wich are the rgb values
echo -e "\033]6;1;bg;red;brightness;18\a"
echo -e "\033]6;1;bg;green;brightness;26\a"
echo -e "\033]6;1;bg;blue;brightness;33\a"

0 comments on commit 341bb6e

Please sign in to comment.