DkTools
MyPersonal Framework.
Todo programador profissonal PHP, em seu dia dia, trabalha com diversas tecnologias. Frameworks,plataformas que nos propõe padrões estruturais e organizacionais que nos entregam diversos benefícios como escalabilidade, estabilidade, facilidade de manutenção, baixa curva de aprendizagem da equipe, além de outros incontáveis benefícios.
No meu dia dia como desenvolvedor, me deparo com estruturas e padrões diferentes nas mais diversas tecnologias, mas uma que gosto bastante é a do Magento2, e dentro dessa vivencia, muitas vezes temos que escrever programas fora da estrutura, afim de crir rotinas, otimizar trabalho e dai vem python, shell e agora estou aprendendo o Golang( incrivel mesmo ), atulmente meus skills é PHP, JS, Golang e Shell.
Então veio a ideia de construir algo que eu possa usar rapidamente de forma minimalista e onde eu possa construir meus modulos e encaixar numa plataforma que me de flexibilidade, escalabilidade e claro baixo acomplamento.
Então surgiu o DKTools, uma evolução do DK [https://github.com/livioweb/dk_docker_manager] que era um pograma que usei bastante para gerenciar o DOCKER, como deletar imagens, volumes, networks, acessar imagens, reiniciar containers...
Então, muitas vezes queremos criar scripts rapidamente, para nossos rotinas, o DKTools otimiza essa nescessidade de forma bem simples. Ate mesmo os testes para empresas, dos mais obscuros aos mais simples podemos simplemente usar como modulo :) e isso é otimo.
Ainda falta algumas coisas, que logo estarei criando.
Installation
OS X & Linux:
git clone https://github.com/livioweb/DKTools.git
Usage example
A few motivating and useful examples of how your product can be used. Spice this up with code blocks and potentially more screenshots.
How to use CLI
$ php bin/consoletool hello:world
How to use with API
$ php -S localhost:9090 ./public/index.php
Access you browser and this URL
localhost:9090/products/1
For more examples and usage, please refer to the [Wiki][wiki].
Development setup
Describe how to install all development dependencies and how to run an automated test-suite of some kind. Potentially do this for multiple platforms.
Release History
- 0.0.1
- Work in progress
Meta
Livio Rodrigues – @livio-rodrigues – liviorodrigueslopes@gmail.com
Distributed under the XYZ license. See LICENSE
for more information.
Contributing
- Fork it (https://github.com/livioweb/DKTools/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
:P DK = https://github.com/livioweb/dk_docker_manager ####Livio Rodrigues Lopes Desenvolvedor Web
##TODO
Docker aliases (shortcuts)
List all containers by status using custom format
alias dkpsa='docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"'
Removes a container, it requires the container name \ ID as parameter
alias dkrm='docker rm -f'
Removes an image, it requires the image name \ ID as parameter
alias dkrmi='docker rmi'
Lists all images by repository sorted by tag name
alias dkimg='docker image ls --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}" | sort'
Lists all persistent volumes
alias dkvlm='docker volume ls'
Diplays a container log, it requires the image name \ ID as parameter
alias dklgs='docker logs'
Streams a container log, it requires the image name \ ID as parameter
alias dklgsf='docker logs -f'
Initiates a session withing a container, it requires the image name \ ID as parameter followed by the word "bash"
alias dkterm='docker exec -it'
Starts a container, it requires the image name \ ID as parameter
alias dkstrt='docker start'
Stops a container, it requires the image name \ ID as parameter
alias dkstp='docker stop'
------------------------------------
Docker alias and function
------------------------------------
Get latest container ID
alias dl="docker ps -l -q"
Get container process
alias dps="docker ps"
Get process included stop container
alias dpa="docker ps -a"
Get images
alias di="docker images"
Get container IP
alias dip="docker inspect --format '{{ .NetworkSettings.IPAddress }}'"
Run deamonized container, e.g., $dkd base /bin/echo hello
alias dkd="docker run -d -P"
Run interactive container, e.g., $dki base /bin/bash
alias dki="docker run -i -t -P"
Execute interactive container, e.g., $dex base /bin/bash
alias dex="docker exec -i -t"
Stop all containers
dstop() { docker stop $(docker ps -a -q); }
Remove all containers
drm() { docker rm $(docker ps -a -q); }
Stop and Remove all containers
alias drmf='docker stop
Remove all images
dri() { docker rmi $(docker images -q); }
Dockerfile build, e.g., $dbu tcnksm/test
dbu() { docker build -t=$1 .; }
Show all alias related docker
dalias() { alias | grep 'docker' | sed "s/^([^=])=(.)/\1 => \2/"| sed "s/['|']//g" | sort; }
Bash into running container
dbash() { docker exec -it $(docker ps -aqf "name=$1") bash; }
------------------------------------
Docker alias and function
------------------------------------
Get latest container ID
alias dl="docker ps -l -q"
Get container process
alias dps="docker ps"
Get process included stop container
alias dpa="docker ps -a"
Get images
alias di="docker images"
Get container IP
alias dip="docker inspect --format '{{ .NetworkSettings.IPAddress }}'"
Run deamonized container, e.g., $dkd base /bin/echo hello
alias dkd="docker run -d -P"
Run interactive container, e.g., $dki base /bin/bash
alias dki="docker run -i -t -P"
Execute interactive container, e.g., $dex base /bin/bash
alias dex="docker exec -i -t"
Stop all containers
dstop() { docker stop $(docker ps -a -q); }
Remove all containers
drm() { docker rm $(docker ps -a -q); }
Stop and Remove all containers
alias drmf='docker stop
Remove all images
dri() { docker rmi $(docker images -q); }
Dockerfile build, e.g., $dbu tcnksm/test
dbu() { docker build -t=$1 .; }
Show all alias related docker
dalias() { alias | grep 'docker' | sed "s/^([^=])=(.)/\1 => \2/"| sed "s/['|']//g" | sort; }
Bash into running container
dbash() { docker exec -it $(docker ps -aqf "name=$1") bash; }
57a6908fdf0e91cc55dd13b3b41fe8e4372ba965