For hosting static HTML websites.
- Debian Buster
- Apache 2.4
- graphicsmagick
- cron
- unzip
- sudo
- openssl
- helper scripts (remdotfiles and css_js_minimize)
The webserver is listening only on TCP port 80 by default.
See the related GitHub repository https://github.com/tsitle/dockercontainer-ws-apache_base
- CF_PROJ_PRIMARY_FQDN [string]: FQDN for website (e.g. "mywebsite.localhost") (default: empty)
- CF_SET_OWNER_AND_PERMS_WEBROOT [bool]: Recursively chown and chmod CF_WEBROOT? (default: false)
- CF_WWWDATA_USER_ID [int]: User-ID for www-data (default: 33)
- CF_WWWDATA_GROUP_ID [int]: Group-ID for www-data (default: 33)
- CF_ENABLE_CRON [bool]: Enable cron service? (default: false)
- CF_LANG [string]: Language to use (en_EN.UTF-8 or de_DE.UTF-8) (default: empty)
- CF_TIMEZONE [string]: Timezone (e.g. 'Europe/Berlin') (default: empty)
- CF_ENABLE_HTTP [bool]: Enable HTTP for Apache? (default: true)
- CF_CREATE_DEFAULT_HTTP_SITE [bool]: Create default HTTP Virtual Host for Apache? (default: true)
- CF_ENABLE_HTTPS [bool]: Enable HTTPS/SSL for Apache? (default: false)
- CF_CREATE_DEFAULT_HTTPS_SITE [bool]: Create default HTTPS/SSL Virtual Host for Apache? (default: true)
- CF_SSLCERT_GROUP_ID [int]: Group-ID for ssl-cert (default: 102)
- CF_DEBUG_SSLGEN_SCRIPT [bool]: Enable debug out for sslgen.sh?
- CF_CSR_SUBJECT_COUNTRY [string]: For auto-generated SSL Certificates (default: DE)
- CF_CSR_SUBJECT_STATE [string]: For auto-generated SSL Certificates (default: SAX)
- CF_CSR_SUBJECT_LOCATION [string]: For auto-generated SSL Certificates (default: LE)
- CF_CSR_SUBJECT_ORGANIZ [string]: For auto-generated SSL Certificates (default: The IT Company)
- CF_CSR_SUBJECT_ORGUNIT [string]: For auto-generated SSL Certificates (default: IT)
- CF_APACHE_TIMEOUT [int]: Number of seconds before receives and sends time out (default: 300)
You'll need to create the crontab file ./mpcron/root
and then add some task to the file:
# the following command will be executed as 'root'
* * * * * cd /var/www/html/; tar cf backup.tar site-html/> /dev/null 2>&1
Now you could enable cron in your docker-compose.yaml file like this:
version: '3.5'
services:
apache:
image: "ws-apache-base-<ARCH>:<VERSION>"
ports:
- "80:80"
volumes:
- "$PWD/mpweb:/var/www/html"
- "$PWD/mpcron/root:/var/spool/cron/crontabs/root"
environment:
- CF_PROJ_PRIMARY_FQDN=example-host.localhost
- CF_SET_OWNER_AND_PERMS_WEBROOT=true
- CF_ENABLE_CRON=true
- CF_LANG=de_DE.UTF-8
- CF_TIMEZONE=Europe/Berlin
- CF_ENABLE_HTTPS=false
restart: unless-stopped
stdin_open: false
tty: false