Full LAMP Stack php7.0, mysql, and phpmyadmin
928
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
/bin/sed -i "s/short_open_tag\ =\ Off/short_open_tag\ =\ On/g" /etc/php/7.0/apache2/php.ini
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
/bin/sed -i "s/;date.timezone\ =/date.timezone\ =\ ${DATE_TIMEZONE}/" /etc/php/7.0/apache2/php.ini
/usr/sbin/postfix start
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 -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
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
Content type
Image
Digest
Size
349.1 MB
Last updated
over 5 years ago
docker pull ajw00100/lampstack