Skip to content
This repository has been archived by the owner on Feb 10, 2022. It is now read-only.

🐳 Docker container running the latest version of the LAMP stack.

License

Notifications You must be signed in to change notification settings

undefinedfunction/docker-lamp

 
 

Repository files navigation

fauria/lamp

docker_logodocker_fauria_logo

Docker Pulls Docker Build Status

This Docker container implements a last generation LAMP stack with a set of popular PHP modules. Includes support for Composer, Bower and npm package managers and a Postfix service to allow sending emails through PHP mail() function.

If you dont need support for MySQL/MariaDB, or your app runs on PHP 5.4, maybe fauria/lap suits your needs better.

Includes the following components:

  • Ubuntu 20.04 LTS Xenial Xerus base image.
  • Apache HTTP Server 2.4
  • MariaDB 10.0
  • Postfix 2.11
  • PHP 7
  • PHP modules
    • php-bz2
    • php-cgi
    • php-cli
    • php-common
    • php-curl
    • php-dbg
    • php-dev
    • php-enchant
    • php-fpm
    • php-gd
    • php-gmp
    • php-imap
    • php-interbase
    • php-intl
    • php-json
    • php-ldap
    • php-mysql
    • php-odbc
    • php-opcache
    • php-pgsql
    • php-phpdbg
    • php-pspell
    • php-readline
    • php-snmp
    • php-sqlite3
    • php-sybase
    • php-tidy
    • php-xmlrpc
    • php-xsl
  • Development tools
    • git
    • composer
    • npm / nodejs
    • bower
    • vim
    • tree
    • nano
    • ftp
    • curl

Installation from Docker registry hub.

You can download the image using the following command:

docker pull fauria/lamp

Environment variables

This image uses environment variables to allow the configuration of some parameteres at run time:

  • Variable name: LOG_STDOUT
  • Default value: Empty string.
  • Accepted values: Any string to enable, empty string or not defined to disable.
  • Description: Output Apache access log through STDOUT, so that it can be accessed through the container logs.

  • Variable name: LOG_STDERR
  • Default value: Empty string.
  • Accepted values: Any string to enable, empty string or not defined to disable.
  • Description: Output Apache error log through STDERR, so that it can be accessed through the container logs.

  • Variable name: LOG_LEVEL
  • Default value: warn
  • Accepted values: debug, info, notice, warn, error, crit, alert, emerg
  • Description: Value for Apache's LogLevel directive.

  • Variable name: ALLOW_OVERRIDE
  • Default value: All
  • All, None
  • Accepted values: Value for Apache's AllowOverride directive.
  • Description: Used to enable (All) or disable (None) the usage of an .htaccess file.

  • Variable name: DATE_TIMEZONE
  • Default value: UTC
  • Accepted values: Any of PHP's supported timezones
  • Description: Set php.ini default date.timezone directive and sets MariaDB as well.

  • Variable name: TERM
  • Default value: dumb
  • Accepted values: dumb
  • Description: Allow usage of terminal programs inside the container, such as mysql or nano.

Exposed port and volumes

The image exposes ports 80 and 3306, and exports four volumes:

  • /var/log/httpd, containing Apache log files.
  • /var/log/mysql containing MariaDB log files.
  • /var/www/html, used as Apache's DocumentRoot directory.
  • /var/lib/mysql, where MariaDB data files are stored.
  • /etc/apache2, where Apache configuration files are stored.

Please, refer to https://docs.docker.com/storage/volumes for more information on using host volumes.

The user and group owner id for the DocumentRoot directory /var/www/html are both 33 (uid=33(www-data) gid=33(www-data) groups=33(www-data)).

The user and group owner id for the MariaDB directory /var/log/mysql are 105 and 108 repectively (uid=105(mysql) gid=108(mysql) groups=108(mysql)).

Use cases

Create a temporary container for testing purposes:

	docker run -i -t --rm fauria/lamp bash

Create a temporary container to debug a web app:

	docker run --rm -p 8080:80 -e LOG_STDOUT=true -e LOG_STDERR=true -e LOG_LEVEL=debug -v /my/data/directory:/var/www/html fauria/lamp

Create a container linking to another MySQL container:

	docker run -d --link my-mysql-container:mysql -p 8080:80 -v /my/data/directory:/var/www/html -v /my/logs/directory:/var/log/httpd --name my-lamp-container fauria/lamp

Get inside a running container and open a MariaDB console:

	docker exec -i -t my-lamp-container bash
	mysql -u root

About

🐳 Docker container running the latest version of the LAMP stack.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dockerfile 49.2%
  • Shell 45.9%
  • PHP 4.9%