Skip to content
Local development environment toolset based on Docker
Makefile Shell Dockerfile HTML
Branch: master
Clone or download

README.md

Logo

dde (Docker based Development Environment)

Local development environment toolset based on Docker supporting multiple projects.

Features include:

  • Simplified Docker web application development
  • Installation of system wide services:
    • *.test domain lookup based on dnsmasq
    • Reverse Proxy based on jwilder/nginx-proxy to run multiple projects on same port (80/443) with autoconfigured SSL certificates
    • MariaDB (MySQL alternative)
    • MailHog (SMTP testing server)
    • Portainer (Docker Webinterface)
    • ssh-agent used for sharing your SSH key without adding it to your project Docker containers.
  • Performance optimized file sharing based on docker-sync / Mutagen

Note: dde is currently under heavy development and we don't offer any backward compatibility. However we use it at whatwedo on daily bases and it's safe to use it in your development environment.

Requirements

Architecture

Architecture

Installation

cd ~
git clone https://github.com/whatwedo/dde.git

# if you're using bash
echo "alias dde='make -f ~/dde/Makefile'" >> ~/.bash_profile

# if you're using zsh
echo "alias dde='make -f ~/dde/Makefile'" >> ~/.zshrc

dde system-up

Additional OS specific installation steps

macOS

Forward requests for .test-domains to the local DNS resolver:

sudo mkdir -p /etc/resolver
echo -e "nameserver 127.0.0.1" | sudo tee /etc/resolver/test

Trust the newly generated Root-CA for the self-signed certificates

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/dde/data/reverseproxy/etc/nginx/certs/ca.pem

Linux

Set your DNS to 127.0.0.1 with fallbacks of your choice.

Trust the newly generated Root-CA found here:

~/dde/data/reverseproxy/etc/nginx/certs/ca.pem

Usage

$ dde
destroy              Remove central project infrastructure
exec                 Opens shell with user dde on first container
exec_root            Opens privileged shell on first container
help                 Display this message
log                  Show log output
start                Start already created project environment
status               Print project status
stop                 Stop project environment
system-cleanup       Cleanup whole docker environment. USE WITH CAUTION
system-destroy       Remove system dde infrastructure
system-log           Show log output of system services
system-nuke          Remove system dde infrastructure and nukes data
system-start         Start already created system dde environment
system-status        Print dde system status
system-stop          Stop system dde environment
system-up            Initializes and starts dde system infrastructure
system-update        Update dde system
up                   Creates and starts project containers

Project configuration

Due to the early stage of this project there is no full documentation available. We created a example project with all required and optional configuration. Please checkout the example directory.

Known problems

  • Files of filesystem mapped with docker-sync will get group id 0.

Bugs and Issues

If you have any problems with this image, feel free to open a new issue in our issue tracker https://github.com/whatwedo/dde/issues

License

This project is under the MIT license. See the complete license in the repository: LICENSE

You can’t perform that action at this time.