Examples of local HTTPS with docker-compose + mkcert
Run mkcert -install
Run ./init.sh
(creates local certificates using mkcert and copies them to where the Caddy and nginx examples expect them)
Each example has a barebones Node app running on the official Node 10 Docker image running on port 8080.
The Node code is at ./caddy/app/index.js, ./caddy-gen/app/index.js and ./nginx/app/index.js.
It also has a reverse-proxy set up using Caddy and nginx respectively which
Caddy is the HTTP/2 web server with automatic HTTPS.
See ./caddy, uses https://github.com/abiosoft/caddy-docker Docker image.
To run it:
cd caddy
docker-compose up
Then either navigate to https://foo.test or curl https://foo.test
.
Note: the nginx/Caddy examples needs to be stopped before starting this Caddy example
Caddy is the HTTP/2 web server with automatic HTTPS.
This image leverages Docker-gen to "Generate files from docker container meta-data".
Which allows us to build the configuration for the reverse proxy using labels on the target container (without a Caddyfile, that's the file generated from the labels).
See ./caddy-gen, uses https://github.com/wemake-services/caddy-gen Docker image.
cd caddy-gen
docker-compose up
Then either navigate to https://foo.test or curl https://foo.test
.
Note: the nginx/other Caddy examples needs to be stopped before starting the Caddy example
nginx is a web server which can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.
Wikipedia
See ./nginx, uses https://github.com/jwilder/nginx-proxy Docker image.
This image leverages Docker-gen to "Generate files from docker container meta-data".
cd nginx
docker-compose up
Then either navigate to https://foo.test or curl https://foo.test
.
Note: the Caddy examples needs to be stopped before starting the nginx example