Nginx container with automatic SSL support built-in
2.9K
Like with my other containers I encourage you to follow a unified directory structure approach to keep things simple & maintainable, e.g.:
project root
- docker-compose.yaml
- htdocs
- config
- nginx
- initialize.sh (if needed)
- sites-enabled
- ...
- snippets
- ...
- data
- nginx
- certificates
- logs
web:
image: qoopido/nginx:latest
hostname: [hostname]
ports:
- "80:80"
- "8080:8080"
- "443:443"
volumes:
- ./htdocs:/app/htdocs
- ./config/nginx:/app/config
- ./data/nginx:/app/data
docker run -d -P -t -i -p 80:80 -p 443:443 \
-h [hostname]
-v [local path to htdocs]:/app/htdocs \
-v [local path to config]:/app/config \
-v [local path to data]:/app/data \
--name web qoopido/nginx:latest
The container comes with a default configuration for nginx under /etc/nginx/nginx.conf that sets daemon off; and globally enabled gzip compression. The container does not come with any kind of default site-configuration.
Any files mounted under /app/config will be copied into the container's filesystem beginning at /etc/nginx. This may be used to overwrite the container's default configuration with a custom, project specific configuration to (e.g.) include php fpm fastCGI proxy (which requires linking a php fpm container). Every file will be searched for a string ${HOSTNAME} which will be replaced by the actual hostname.
If you need a custom shell script to be run on start or stop (e.g. to set symlinks) you can do so by creating the file /app/config/up.sh or /app/config/down.sh.
SSL certificates will be auto-generated per hostname if no key/crt file can be found in /app/data/certificates/[hostname].[key|crt].
Content type
Image
Digest
Size
146.5 MB
Last updated
over 10 years ago
docker pull qoopido/nginx