/dockerimage-ws-apache_base

Apache2 Webserver Docker Image for AARCH64, ARMv7l, X86 and X64

Primary LanguageShell

Apache2 Webserver Docker Image for AARCH64, ARMv7l and X64

For hosting static HTML websites.

Inheritance and added packages

  • Debian Buster
    • Apache 2.4
    • graphicsmagick
    • cron
    • unzip
    • sudo
    • openssl
    • helper scripts (remdotfiles and css_js_minimize)

Webserver TCP Port

The webserver is listening only on TCP port 80 by default.

Docker Container usage

See the related GitHub repository https://github.com/tsitle/dockercontainer-ws-apache_base

Docker Container configuration

  • 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)

Using cron

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