Here are some stacks of development made in Docker. Rather Web oriented she can help during the development of a Web project :)
In this stacks, Traefik is used as a reverse proxy in order to be able to browse the different web applications. You will find below, the different urls of each service (with COMPOSE_PROJECT_NAME variable set to local). Add them to your favorites in your favorite browser ;)
| Service | Name | Frontend | Description |
|---|---|---|---|
| Traefik | traefik | http://traefik-proxy.traefik.docker/ | Traefik is an HTTP / HTTPS reverse proxy and a load-balancer for the purpose of easily deploying microservices. |
| Service | Name | Frontend | Description |
|---|---|---|---|
| Portainer | portainer | http://portainer.traefik.docker/ | Portainer is an open-source lightweight management ui which allows you to easily manage your docker hosts or swarm clusters. |
| Jenkins (PHP Docker build) | jenkins | http://jenkins.traefik.docker/ | As an extensible automation server, Jenkins can be used as a simple CI server or turned into the continuous delivery hub for any project. |
| Ansistrano | ansistrano | - | ansistrano.deploy and ansistrano.rollback are Ansible roles to easily manage the deployment process for scripting applications such as PHP, Python and Ruby. It's an Ansible port for Capistrano. |
| Service | Name | Frontend | Description |
|---|---|---|---|
| Mysql | mysql | - | MySQL is an open-source relational database management system (RDBMS). |
| Redis | redis | - | Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. |
| SFTP Server | sftp-server | - | SFTP server. |
| Service | Name | Frontend | Description |
|---|---|---|---|
| RabbitMQ | rabbitmq | http://rabbitmq.traefik.docker/ | RabbitMQ is an open source message agent software that implements the Advanced Message Queuing protocol, but also with Streaming Text Oriented Messaging Protocol and Message Queuing Telemetry Transport plugins. |
| Streamsets | streamsets | http://mailcatcher.traefik.docker/ | The StreamSets DataOps Platform simplifies how to build, execute, operate and protect enterprise data movement architectures. |
| Service | Name | Frontend | Description |
|---|---|---|---|
| Wireshark | wireshark | https://wireshark.traefik.docker:14500/ | Wireshark is a free and open source packet analyzer. |
| Mailcatcher | mailcatcher | http://mailcatcher.traefik.docker/ | MailCatcher runs a super simple SMTP server which catches any message sent to it to display in a web interface. |
| Adminer | adminer | http://adminer.traefik.docker/ | Adminer is a full-featured database management tool written in PHP. |
| SQLPad | sqlpad | http://sqlpad.traefik.docker/ | SQLPad is a self-hosted web app for writing and running SQL queries and visualizing the results. |
| Redis Commander | redis_commander | http://redis-commander.traefik.docker/ | Redis-Commander is a node.js web application used to view, edit, and manage a Redis Database. |
| Redis Memtier Benchmark | redis-memtier_benchmark | - | Redis includes the redis-benchmark utility that simulates running commands done by N clients at the same time sending M total queries (it is similar to the Apache's ab utility). |
| Service | Name | Frontend | Description |
|---|---|---|---|
| ElasticSearch | elasticsearch | - | Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. |
| Kibana | kibana | https://kibana.traefik.docker/ | Kibana lets you visualize your Elasticsearch data and navigate the Elastic Stack. |
| Logstash | logstash | - | Logstash is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously. |
| Logspout | logspout-logstash | - | Logspout is a log router for Docker containers that runs inside Docker. |
| Service | Name | Frontend | Description |
|---|---|---|---|
| Symfony | sf_php | http://sf-app.traefik.docker | A Symfony 4 application mounted with a multi-stage Dockerfile. |
-
Copy all dist file
cp .env.dist .env cp traefik/conf/traefik.toml.dist traefik/conf/traefik.toml cp elastic/logstash/pipeline/logstash.conf.dist elastic/logstash/pipeline/logstash.conf cp elastic/logstash/pipeline/logstash.yml.dist elastic/logstash/pipeline/logstash.yml cp devops/ansistrano/conf/hosts.dist devops/ansistrano/conf/hosts cp devops/ansistrano/playbooks/symfony/hosts.ini.dist devops/ansistrano/playbooks/symfony/hosts.ini
-
You have to edit some variable in
.envfile. -
And then run the docker-compose
make build make up
-
Start and stop services independently (with COMPOSE_PROJECT_NAME variable set to local)
# Build services make build services="<service_name> [<service_name>]" # Up services make up services="<service_name> [<service_name>]" # Stop services make stop services="local_<service_name> [local_<service_name>]" # Down services and remove volumes make down services="local_<service_name> [local_<service_name>]"
You can customize all tools, use the file docker-compose.override.yml
-
Copy
docker-compose.override.yml.distfile todocker-compose.override.ymlcp docker-compose.override.yml.dist docker-compose.override.yml
Examples :
- Restart some tools at the same time as your system (in my case, traefik & portainer):
services: traefik: restart: always portainer: restart: always
- Change the Adminer theme
- Use dev mode to Symfony app
- Deploy Ansistrano