Sign inSign up

ajw00100/lampstack

By ajw00100

•Updated over 5 years ago

Full LAMP Stack php7.0, mysql, and phpmyadmin

Image
0

928

ajw00100/lampstack repository overview

docker build -t lampstack . docker run -d -it --name lampstack -p 8082:80 -v ${PWD}:/var/www/html lampstack ajw00100/lampstack docker exec -it lampstack bash

http://localhost:8082/phpmyadmin⁠ -- user: phpmyadmin password:""

statup.sh /usr/sbin/start_mysql.sh /usr/sbin/phpmyadmin_install.sh /usr/sbin/start_apache.sh cat >/dev/null

debconf.selections postfix postfix/mailname string localhost postfix postfix/main_mailer_type string 'Docker Postfix'

start_mysql.sh

#!/bin/bash

function exportBoolean { if [ "${!1}" = "Boolean" ]; then export ${1}='' else export ${1}='Yes.' fi }

exportBoolean LOG_STDOUT exportBoolean LOG_STDERR

if [ $LOG_STDERR ]; then /bin/ln -sf /dev/stderr /var/log/apache2/error.log else LOG_STDERR='No.' fi

if [ $ALLOW_OVERRIDE == 'All' ]; then /bin/sed -i 's/AllowOverride\ None/AllowOverride\ All/g' /etc/apache2/apache2.conf fi

if [ $LOG_LEVEL != 'warn' ]; then /bin/sed -i "s/LogLevel\ warn/LogLevel\ ${LOG_LEVEL}/g" /etc/apache2/apache2.conf fi

⁠enable php short tags:

/bin/sed -i "s/short_open_tag\ =\ Off/short_open_tag\ =\ On/g" /etc/php/7.0/apache2/php.ini

⁠stdout server info:

if [ ! $LOG_STDOUT ]; then cat << EOB

**********************************************
*                                            *
*    Docker image: ajw00100/lamp             *
*    https://github.com/ajw00100/docker-lamp *
*                                            *
**********************************************

SERVER SETTINGS
---------------
· Redirect Apache access_log to STDOUT [LOG_STDOUT]: No.
· Redirect Apache error_log to STDERR [LOG_STDERR]: $LOG_STDERR
· Log Level [LOG_LEVEL]: $LOG_LEVEL
· Allow override [ALLOW_OVERRIDE]: $ALLOW_OVERRIDE
· PHP date timezone [DATE_TIMEZONE]: $DATE_TIMEZONE

EOB else /bin/ln -sf /dev/stdout /var/log/apache2/access.log fi

⁠Set PHP timezone

/bin/sed -i "s/;date.timezone\ =/date.timezone\ =\ ${DATE_TIMEZONE}/" /etc/php/7.0/apache2/php.ini

⁠Run Postfix

/usr/sbin/postfix start

⁠Run MariaDB

start_apache.sh service apache2 start

phpmyadmin_install.sh #Install phpmyadmin if [ ! -f /etc/phpmyadmin/config.inc.php ]; then #Get random data for app password AUTOGENERATED_PASS=tr -dc A-Za-z0-9 < /dev/urandom | head -c 64

echo "phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2" | debconf-set-selections echo "phpmyadmin phpmyadmin/dbconfig-install boolean true" | debconf-set-selections echo "phpmyadmin phpmyadmin/mysql/admin-user string root" | debconf-set-selections echo "phpmyadmin phpmyadmin/mysql/admin-pass password $MYSQL_ROOT_PASS" | debconf-set-selections echo "phpmyadmin phpmyadmin/mysql/app-pass password $AUTOGENERATED_PASS" |debconf-set-selections echo "phpmyadmin phpmyadmin/app-password-confirm password $AUTOGENERATED_PASS" | debconf-set-selections apt-get update apt-get --assume-yes install phpmyadmin

#Change phpMyAdmin directory

⁠sed -i -r "s:(Alias /).*(/usr/share/phpmyadmin):\1$PHPMYADMIN_DIR \2:" /etc/phpmyadmin/apache.conf

sed -E -i "s:(//\s*)(\$...['Servers'][\$.]['AllowNoPassword'].):\2:" /etc/phpmyadmin/config.inc.php sed -E "s/(^dbc_dbpass=)'.'/\1''/" /etc/dbconfig-common/phpmyadmin.conf

service mysql restart mysql < /usr/sbin/sql.sql phpenmod mcrypt phpenmod mbstring

fi

sql.sql USE mysql; UPDATE mysql.user set password='' where user='phpmyadmin'; GRANT ALL PRIVILEGES ON . TO 'phpmyadmin'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;

Dockerfile FROM ubuntu:16.04 MAINTAINER ajw00100 [email protected]⁠ LABEL Description="Cutting-edge LAMP stack, based on Ubuntu 16.04 LTS. Includes .htaccess support and popular PHP7 features, including composer and mail() function."
License="Apache License 2.0"
Usage="docker run -d -p [HOST WWW PORT NUMBER]:80 -p [HOST DB PORT NUMBER]:3306 -v [HOST WWW DOCUMENT ROOT]:/var/www/html -v [HOST DB DOCUMENT ROOT]:/var/lib/mysql ajw00100/lamp"
Version="1.0" RUN apt-get update RUN apt-get upgrade -y

COPY debconf.selections /tmp/ RUN debconf-set-selections /tmp/debconf.selections

RUN apt-get install -y
php7.0
php7.0-bz2
php7.0-cgi
php7.0-cli
php7.0-common
php7.0-curl
php7.0-dev
php7.0-enchant
php7.0-fpm
php7.0-gd
php7.0-gmp
php7.0-imap
php7.0-interbase
php7.0-intl
php7.0-json
php7.0-ldap
php7.0-mcrypt
php7.0-mysql
php7.0-odbc
php7.0-opcache
php7.0-pgsql
php7.0-phpdbg
php7.0-pspell
php7.0-readline
php7.0-recode
php7.0-snmp
php7.0-sqlite3
php7.0-sybase
php7.0-tidy
php7.0-xmlrpc
php7.0-xsl RUN apt-get install apache2 libapache2-mod-php7.0 -y RUN apt-get install mariadb-common mariadb-server mariadb-client -y RUN apt-get install postfix -y RUN apt-get install git nodejs npm composer nano tree vim curl ftp -y RUN npm install -g bower grunt-cli gulp RUN apt-get install zip

ENV LOG_STDOUT Boolean ENV LOG_STDERR Boolean ENV LOG_LEVEL warn ENV ALLOW_OVERRIDE All ENV DATE_TIMEZONE UTC ENV TERM dumb

RUN a2enmod rewrite RUN ln -s /usr/bin/nodejs /usr/bin/node RUN chown -R www-data:www-data /var/www/html

VOLUME /var/www/html VOLUME /var/log/httpd VOLUME /var/lib/mysql VOLUME /var/log/mysql

EXPOSE 80 EXPOSE 3306

RUN sed -i 's/^bind-address/#bind-address/' /etc/mysql//mariadb.conf.d/50-server.cnf

RUN apt-get install -y php-mbstring php-gettext

⁠run the phpmyadmin

COPY phpmyadmin_install.sh /usr/sbin/ COPY start_mysql.sh /usr/sbin/ COPY start_up.sh /usr/sbin/ COPY start_apache.sh /usr/sbin/ COPY sql.sql /usr/sbin/ RUN chmod +x /usr/sbin/phpmyadmin_install.sh RUN chmod +x /usr/sbin/start_mysql.sh RUN chmod +x /usr/sbin/start_up.sh RUN chmod +x /usr/sbin/start_apache.sh

RUN phpenmod mcrypt RUN phpenmod mbstring

CMD /usr/sbin/start_up.sh

Tag summary

Content type

Image

Digest

Size

349.1 MB

Last updated

over 5 years ago

docker pull ajw00100/lampstack