/docker-lab

Docker Lab (Learn Docker)

Primary LanguageVim ScriptMIT LicenseMIT

Docker-Lab

Docker Lab (Learn Docker), this repository inspired from Docker Alpine.

alt text alt text

Features

Dynamic environments for:

  • MariaDB
  • MongoDB
  • Nginx
  • NodeJS
  • PostgreSQL
  • Python
  • Ruby
  • Vim
  • Application (Workspace for Vim, Python, NodeJS & Ruby)

Application Container Features

  • bash (+ themes)
  • oh-my-zsh (+ themes)
  • tmux (+ themes)
  • vim (+ plugins with vundle & themes)
  • rbenv / rvm
    • gem test unit (rspec, serverspec)
    • gem docker-api
    • gem sqlite3, mongoid, sequel, apktools
    • gem mysql2 (run: yum install -y mysql-devel)
    • gem pg, sequel_pg (run: yum install -y postgresql-libs postgresql-devel)
    • gem rubocop
    • others
  • npm
    • npm test unit (ChaiJS, TV4, Newman)
  • js package manager
    • yarn
    • bower
    • grunt
    • gulp
    • yeoman

Vim (vundle) Plugin

  • Run vim then
    :PluginInstall
    
  • Update plugin vim (vundle)
    :PluginUpdate
    
  • Via terminal
    vim +PluginInstall +q
    vim +PluginUpdate +q
    

Ruby Packages Dependency

  • Path Gemfile
    $HOME/Gemfile
    $HOME/Gemfile.lock
    
  • Gem Installation
    ./tmp/gems.sh
    
  • Different User Installation
    /bin/sh $HOME/gems.sh
    

Build & Run Containers (Without docker-compose)

  • Build Containers
    ./build_all.sh
    
  • Running Containers (Single Containers Only)
    ./run_nginx.sh
    ./run_mariadb.sh
    ./run_postgresql.sh
    

Docker Compose

  • Copy env-example to .env
  • Copy docker-compose.skeleton.yml to docker-compose.yml
  • Build & running
    docker-compose build && docker-compose up
    
  • Force recreate container
    docker-compose build && docker-compose up --force-recreate
    
  • Force recreate some containers only
    docker-compose build && docker-compose up --force-recreate mariadb mongodb nginx nodejs postgresql redis ruby application
    
  • Running container only
    docker-compose up
    
  • Running some containers only
    docker-compose up mariadb mongodb nginx nodejs postgresql redis ruby application
    

Environments

You can run docker-compose for different environment with selected containers

  • Copy env.sh.example to env.sh
  • Change to execute script
    chmod a+x env.sh
    
  • Change environment in env.sh file
    ENV="development"            # (use: "development" or "production" as selected environment)
    CONTAINER_PRODUCTION="..."   # (selected containers will be run in production environment)
    CONTAINER_DEVELOPMENT="..."  # (selected containers will be run in development environment)
    
  • Running script
    ./env.sh
    

License

MIT License