* Add a Docker+wasm sample application featuring a WasmEdge-based microservice, a MySQL database and an Nginx web server for frontend UI files. Signed-off-by: Michael Yuan <michael@secondstate.io> * Add a logo to indicate Docker+wasm compatibility. Add project descriptions to README. Signed-off-by: Michael Yuan <michael@secondstate.io> * Add the example for WasmEdge + Kafka / Redpanda + MySQL application to take messages from a queue and save into a database table. Signed-off-by: Michael Yuan <michael@secondstate.io> * Add a SVG icon to indicate Docker + Wasm req Signed-off-by: Michael Yuan <michael@michaelyuan.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update the docker compose files for the new Docker Desktop release Signed-off-by: Michael Yuan <michael@secondstate.io> * Use the correct platform to be compatible with Docker Desktop 4.15 Signed-off-by: Michael Yuan <michael@secondstate.io> * Update README.md Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-kafka-mysql/README.md Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-kafka-mysql/README.md Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-kafka-mysql/etl/Dockerfile Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Update wasmedge-mysql-nginx/README.md Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> * Change the Nginx port to the default non-privileged 8090 Signed-off-by: Michael Yuan <michael@secondstate.io> * My apologies. Need to correct the syntax for the Nginx port 8090. Signed-off-by: Michael Yuan <michael@secondstate.io> * Remove commented lines Signed-off-by: Michael Yuan <michael@secondstate.io> * Change wasi/wasm32 to wasi/wasm to conform with the latest spec Signed-off-by: Michael Yuan <michael@secondstate.io> * Update README.md Co-authored-by: Michael Irwin <mikesir87@gmail.com> Signed-off-by: Michael Yuan <michael@michaelyuan.com> Signed-off-by: Michael Yuan <michael@secondstate.io> Signed-off-by: Michael Yuan <michael@michaelyuan.com> Co-authored-by: David Karlsson <35727626+dvdksn@users.noreply.github.com> Co-authored-by: Michael Irwin <mikesir87@gmail.com>
9.7 KiB
Awesome Compose
A curated list of Docker Compose samples.
These samples provide a starting point for how to integrate different services using a Compose file and to manage their deployment with Docker Compose.
Note
The following samples are intended for use in local development environments such as project setups, tinkering with software stacks, etc. These samples must not be deployed in production environments.
Contents
- Samples of Docker Compose applications with multiple integrated services.
- Single service samples.
- Basic setups for different platforms (not production ready - useful for personal use).
Samples of Docker Compose applications with multiple integrated services
Icon indicates Sample is compatible with Docker Dev Environments in Docker Desktop version 4.10 or later.
Icon indicates Sample is compatible with Docker+Wasm.
ASP.NET / MS-SQL
- Sample ASP.NET core application with MS SQL server database.Elasticsearch / Logstash / Kibana
- Sample Elasticsearch, Logstash, and Kibana stack.Go / NGINX / MySQL
- Sample Go application with an Nginx proxy and a MySQL database.Go / NGINX / PostgreSQL
- Sample Go application with an Nginx proxy and a PostgreSQL database.Java Spark / MySQL
- Sample Java application and a MySQL database.NGINX / ASP.NET / MySQL
- Sample Nginx reverse proxy with an C# backend using ASP.NETNGINX / Flask / MongoDB
- Sample Python/Flask application with Nginx proxy and a Mongo database.NGINX / Flask / MySQL
- Sample Python/Flask application with an Nginx proxy and a MySQL database.NGINX / Node.js / Redis
- Sample Node.js application with Nginx proxy and a Redis databaseNGINX / Go
- Sample Nginx proxy with a Go backend.NGINX / WSGI / Flask
- Sample Nginx reverse proxy with a Flask backend using WSGI.PostgreSQL / pgAdmin
- Sample setup for postgreSQL database with pgAdmin web interfacePython / Flask / Redis
- Sample Python/Flask and a Redis databaseReact / Spring / MySQL
- Sample React application with a Spring backend and a MySQL database.React / Express / MySQL
- Sample React application with a Node.js backend and a MySQL database.React / Express / MongoDB
- Sample React application with a Node.js backend and a Mongo database.React / Rust / PostgreSQL
- Sample React application with a Rust backend and a Postgres database.React / Nginx
- Sample React application with Nginx.Spring / PostgreSQL
- Sample Java application with Spring framework and a Postgres database.WasmEdge / MySQL / Nginx
- Sample Wasm-based web application with a static HTML frontend, using a MySQL (MariaDB) database. The frontend connects to a Wasm microservice written in Rust, that runs using the WasmEdge runtime.WasmEdge / Kafka / MySQL
- Sample Wasm-based microservice that subscribes to a Kafka (Redpanda) queue topic, and transforms and saves any incoming message into a MySQL (MariaDB) database.
Single service samples
Icon indicates Sample is compatible with Docker Dev Environments in Docker Desktop version 4.10 or later.
Basic setups for different platforms (not production ready - useful for personal use)
Gitea / PostgreSQL
Nextcloud / PostgreSQL
Nextcloud / Redis / MariaDB
Pi-hole / cloudflared
- Sample Pi-hole setup with use of DoH cloudflared servicePrometheus / Grafana
Wordpress / MySQL
Getting started
These instructions will get you through the bootstrap phase of creating and deploying samples of containerized applications with Docker Compose.
Prerequisites
- Make sure that you have Docker and Docker Compose installed
- Windows or macOS: Install Docker Desktop
- Linux: Install Docker and then Docker Compose
- Download some or all of the samples from this repository.
Running a sample
The root directory of each sample contains the compose.yaml
which
describes the configuration of service components. All samples can be run in
a local environment by going into the root directory of each one and executing:
docker compose up -d
Check the README.md
of each sample to get more details on the structure and
what is the expected output.
To stop and remove all containers of the sample application run:
docker compose down
Quickstart guides
In addition to all the ready to run Compose samples listed above the folder official-documentation-samples contains quickstart guides. Each of these step by step guides explain which files need to be created to build and run a Docker Compose application.
Contribute
We welcome examples that help people understand how to use Docker Compose for common applications. Check the Contribution Guide for more details.