Skip to content
Serve static sites based on their domain using Docker & NGINX
Dockerfile Shell HTML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
sites
Dockerfile
LICENSE
README.md
circle.yml
docker-compose.yml
docker-entry.sh
dynamic-sites.conf

README.md

TEONITE Build: Circle CI

docker-nginx-dynamic-sites is a simple solution to have one NGINX docker/container instance for multiple domains (virtual hosts).

The only thing you need to do is:

  1. Launch the contener
  2. Set all domain names to the IP that the container is exposed
  3. Put all your sites to /sites/ (volume exposed) directory with the domain names.

How does it work?

  1. detects and "creates" a virtual host based on the requested URL domain
  2. tries to find a folder with the domain name in the /sites/ directory (eg. /sites/domainname.com)
  3. If the folder exists, site is served - if not, the default one is served (/sites/default)

We've created this simple solution, as our whole infrastructure runs on Docker - and we wanted to have only one NGINX instance for all static sites.

Usage

To run it:

$ docker run -d -p 80:80 -v /path/to/sites:/sites/ teonite/nginx-dynamic-sites

Log files

There is only one error log file (/var/log/nginx/error.log). Access logs are created with domain name eg. /var/log/nginx/domainname.com.access.log.

You can’t perform that action at this time.