How to

How to : basic

All those command are compact and useful docker shortcuts !

Those aliases overrides standard docker commands for container and images.

Description IMAGE CONTAINER
edjangerattach "docker attach" with parameters read from local edjanger.properties. X
edjangeredjangerbuild "docker build" with parameters read from local edjanger.properties. X
edjangeredjangercommit "docker commit" with parameters read from local edjanger.properties. X X
edjangeredjangercopy "docker copy" with parameters read from local edjanger.properties. X
edjangeredjangercreate "docker create" with parameters read from local edjanger.properties. X
edjangeredjangerdiff "docker diff" with parameters read from local edjanger.properties. X
edjangeredjangerevents "docker events" with parameters read from local edjanger.properties. X
edjangeredjangerexec "docker exec" with parameters read from local edjanger.properties. X
edjangeredjangerexport "docker port" with parameters read from local edjanger.properties. X
edjangeredjangerhistory "docker history" with parameters read from local edjanger.properties. X
edjangeredjangerimages "docker images" with parameters read from local edjanger.properties. X X
edjangeredjangerimport "docker import" with parameters read from local edjanger.properties. X
edjangeredjangerinspect "docker inspect" with parameters read from local edjanger.properties. X X
edjangeredjangerkill "docker kill" with parameters read from local edjanger.properties. X
edjangeredjangerlogs "docker logs" with parameters read from local edjanger.properties. X
edjangeredjangerpause "docker pause" with parameters read from local edjanger.properties. X
edjangeredjangerps "docker ps" with parameters read from local edjanger.properties. X
edjangeredjangerpsa "docker ps -a" with parameters read from local edjanger.properties. X
edjangeredjangerrename "docker rename" with parameters read from local edjanger.properties. X
edjangeredjangerrestart "docker restart" with parameters read from local edjanger.properties. X
edjangeredjangerm "docker rm" with parameters read from local edjanger.properties. X
edjangeredjangermi "docker rmi" with parameters read from local edjanger.properties. X
edjangeredjangerun "docker run -d" with parameters read from local edjanger.properties. X
edjangeredjangeruni "docker run -it" with parameters read from local edjanger.properties. X
edjangeredockestart "docker start" with parameters read from local edjanger.properties. X
edjangeredockestats "docker stats" with parameters read from local edjanger.properties. X
edjangeredockestop "docker stop" with parameters read from local edjanger.properties. X
edjangeredjangertag "docker tag" with parameters read from local edjanger.properties. X
edjangeredjangertop "docker top" with parameters read from local edjanger.properties. X
edjangeredjangerunpause "docker unpause" with parameters read from local edjanger.properties. X
edjangeredjangerupdate "docker update" with parameters read from local edjanger.properties. X
edjangeredjangerwait "docker wait" with parameters read from local edjanger.properties. X

How to : advanced

Description
edjangeredjangerclean clean all images with none attribute (run docker rmi with "none" filter).
edjangeredjangerports "docker ports" on all running container.
edjangeredjangermexiteds docker rm with list of container with exited status.
edjangeredjangerrmorphanedvolumes remove all orphaned volumes.

How to : useful

Description
edjangeredjangerabout about script for edjanger.
edjangeredjangeralias print edjanger aliases.
edjangeredjangercheck check missing parameters in edjanger.properties.
edjangeredjangercompose create docker-compose.yaml from all edjanger.propeorties in current path.
edjangeredjangerhelp help for all commands.
edjangeredjangerinit initialize an edjanger project.
edjangeredjangerportdesc description of port.
edjangeredjangertemplate generate edjanger.poperties from edjanger.template.
edjangeredjangerunalias help script for edjanger command.
edjangeredjangerupgrade upgrade edjanger.

Check missing parameters in edjanger.properties

Remark : even when parameters are missing in edjanger.properties, they are initialized empty.

How to : compose

From an existing edjanger root path project structure, call edcokercompose. Script will parse all edjanger.properties in subfolders and create docker-compose.yaml at upper path.

edjangercompose
vi docker-compose.yaml

How to : template

Prerequisities : - gettext (for envsubst) - zip/unzip

  • Deploy example "demo_template" with one of following commands:
edjangerinit --template=demo_template

or

edjangertemplate --init=demo_template
  • Deploy 2 apache web sever (web1 and web2) with specific ports and shared volumes for a "production" environement. bash ./deploy_run.sh --properties=production 5

  • Deploy 2 apache web server (web1 and web2) with specific ports and shared volumes for an "integration" environement. bash ./deploy_run.sh --properties=integration 5

  • Instructions From an existing edjanger root path project structure, do following

    • rename all edjanger.properties to edjanger.template
    • define variable for element to be replaced with variable value from configuration file
    • create configuration files (.properties) containing SHELL-FORMAT variable
      • in each folder containing edjanger.properties (each configuration file must hase same name e.g.: production.properties) or
      • only in root folder (e.g.: production.properties)
    • call edjangertemplate with name of configuration file
edjangertemplate --properties=<name>.properties

Example of edjangertemplate invocation

edjangertemplate --properties=production.properties

Example of production.properties content

#!/bin/bash
export HTTPD_PORT_80=80
export HTTPD_PORT_443=443

Example of edjanger.template content

#exposed_ports:exposed port
exposed_ports="-p ${HTTPD_PORT_80}:80 -p ${HTTPD_PORT_443}:443"

Script will find all edjanger.template and replace variables from root or folder(s) configuration(s) file(s) to produce edjanger.properties files.

Example of edjanger.properties produced

#exposed_ports:exposed port
exposed_ports="-p 80:80 -p 443:443"

Example of template workflow:

Initialize an empty project and configure it.

Configure properties and run template for jenkins

Build and run the jenkins container

Save the jenkins template

See it in the template list

Test initialisation with a demo_jenkins template

How to : crontab

Configure automatic container restart at boot

To configure automatic restart of container at boot, configure edjanger.properties files : - activate cron_start=true to start existing container at boot - activate cron_build=true to build and start a new container at boot

Configure crontab with following parameters

crontab -e
@reboot {edjangerpath}/cron_build_start.sh {edjanger properties path}
@reboot {edjangerpath}/cron_start_only.sh {edjanger properties path}

Example:

crontab -e
@reboot /opt/edjanger/scripts/cron_build_start.sh /root/workspace/docker
@reboot /opt/edjanger/scripts/cron_start_only.sh /root/workspace/docker

How to : contribute

Download sources from github :

cd /opt
git clone edjanger https://github.com/pamtrak06/edjanger.git
cd edjanger
git clone -b gh-pages https://github.com/pamtrak06/edjanger.git
cd ..

To be in user mode :

./edjangerinstall.sh --alias
./edjangerinstall.sh -a

To be in contribution mode (allow to push to github) :

./edjangerinstall.sh --contribution
./edjangerinstall.sh -c

To build web site

cd /opt/edjanger/gh-pages/mkdocs
./build.sh
./serve.sh

Open following :

http://127.0.0.1:8000