@@ -2,98 +2,95 @@ FROM phusion/baseimage:0.10.2
22MAINTAINER Jake Jarvis <jake@jarv.is>
33ENV REFRESHED_AT 2019-06-11
44
5- # based on mattrayner/lamp & dgraziotin/lamp
5+ # Based on mattrayner/lamp & dgraziotin/lamp:
66# MAINTAINER Matthew Rayner <hello@rayner.io>
77# MAINTAINER Daniel Graziotin <daniel@ineed.coffee>
88
99ENV DOCKER_USER_ID 501
1010ENV DOCKER_USER_GID 20
11-
1211ENV BOOT2DOCKER_ID 1000
1312ENV BOOT2DOCKER_GID 50
1413
15- ENV PHPMYADMIN_VERSION=4.9.0.1
16-
1714# Tweaks to give Apache/PHP write permissions to the app
1815RUN usermod -u ${BOOT2DOCKER_ID} www-data && \
1916 usermod -G staff www-data && \
2017 useradd -r mysql && \
21- usermod -G staff mysql
22-
23- RUN groupmod -g $(($BOOT2DOCKER_GID + 10000)) $(getent group $BOOT2DOCKER_GID | cut -d: -f1)
24- RUN groupmod -g ${BOOT2DOCKER_GID} staff
18+ usermod -G staff mysql && \
19+ groupmod -g $(($BOOT2DOCKER_GID + 10000)) $(getent group $BOOT2DOCKER_GID | cut -d: -f1) && \
20+ groupmod -g ${BOOT2DOCKER_GID} staff
2521
2622# Install packages
2723ENV DEBIAN_FRONTEND noninteractive
2824RUN add-apt-repository -y ppa:ondrej/php && \
2925 add-apt-repository -y ppa:ondrej/php5-compat && \
3026 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C && \
3127 apt-get update && \
32- apt-get -y upgrade && \
33- apt-get -y install supervisor wget curl git zip unzip pwgen apache2 php5.6 libapache2-mod-php5.6 mysql-server-5.7 php5.6-mysql php5.6-mcrypt php5.6-gd php5.6-xml php5.6-mbstring php5.6-gettext php5.6-zip php5.6-curl && \
34- apt-get -y autoremove && \
35- echo "ServerName localhost" >> /etc/apache2/apache2.conf
28+ apt-get -y dist-upgrade && \
29+ apt-get -y install supervisor wget curl git zip unzip pwgen apache2 mysql-server-5.7 php5.6 libapache2-mod-php5.6 php5.6-mysql php5.6-mcrypt php5.6-gd php5.6-xml php5.6-mbstring php5.6-gettext php5.6-zip php5.6-curl && \
30+ apt-get -y autoremove
3631
37- # Point PHP CLI to use 5.6
32+ # Point CLI to use PHP 5.6
3833RUN ln -sfn /usr/bin/php5.6 /etc/alternatives/php
3934
40- # mcrypt needed for phpMyAdmin
41- RUN phpenmod mcrypt
42-
43- # Add image configuration and scripts
35+ # Add build scripts
4436ADD config/start-apache2.sh /start-apache2.sh
4537ADD config/start-mysqld.sh /start-mysqld.sh
38+ ADD config/create_mysql_users.sh /create_mysql_users.sh
4639ADD config/run.sh /run.sh
4740RUN chmod 755 /*.sh
41+
42+ # Add better default configurations
4843ADD config/supervisord-apache2.conf /etc/supervisor/conf.d/supervisord-apache2.conf
4944ADD config/supervisord-mysqld.conf /etc/supervisor/conf.d/supervisord-mysqld.conf
5045ADD config/mysqld_innodb.cnf /etc/mysql/conf.d/mysqld_innodb.cnf
46+ ADD config/apache_default /etc/apache2/sites-available/000-default.conf
47+ RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
5148
5249# Allow MySQL to bind on 0.0.0.0
5350RUN sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf && \
54- sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/mysql.conf.d/mysqld.cnf
55-
56- # Set PHP timezones to America/New_York
57- RUN sed -i "s/;date.timezone =/date.timezone = America\/ New_York/g" /etc/php/5.6/apache2/php.ini
58- RUN sed -i "s/;date.timezone =/date.timezone = America\/ New_York/g" /etc/php/5.6/cli/php.ini
51+ sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/mysql.conf.d/mysqld.cnf
5952
6053# Remove pre-installed database
6154RUN rm -rf /var/lib/mysql
6255
63- # Add MySQL utils
64- ADD config/create_mysql_users.sh /create_mysql_users.sh
65- RUN chmod 755 /*.sh
56+ # mcrypt needed for phpMyAdmin
57+ RUN phpenmod mcrypt
6658
67- # Add phpMyAdmin
68- ENV PHPMYADMIN_VERSION=4.8.2
69- RUN wget -O /tmp/phpmyadmin.tar.gz https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.gz
70- RUN tar xfvz /tmp/phpmyadmin.tar.gz -C /var/www
71- RUN ln -s /var/www/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages /var/www/phpmyadmin
72- RUN mv /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
59+ # Install phpMyAdmin
60+ ENV PHPMYADMIN_VERSION=4.9.0.1
61+ RUN wget -O /tmp/phpmyadmin.tar.gz https://files.phpmyadmin.net/phpMyAdmin/${PHPMYADMIN_VERSION}/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages.tar.gz && \
62+ tar xfvz /tmp/phpmyadmin.tar.gz -C /var/www && \
63+ ln -s /var/www/phpMyAdmin-${PHPMYADMIN_VERSION}-all-languages /var/www/phpmyadmin && \
64+ mv /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
7365
74- # Add Composer
66+ # Install Composer
7567RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
7668 php composer-setup.php && \
7769 php -r "unlink('composer-setup.php');" && \
7870 mv composer.phar /usr/local/bin/composer
7971
72+ # Set "secure" MySQL admin password
8073ENV MYSQL_PASS:-$(pwgen -s 12 1)
8174
82- # Enable .htaccess
83- ADD config/apache_default /etc/apache2/sites-available/000-default.conf
75+ # Enable mod_rewrite
8476RUN a2enmod rewrite
8577
86- # Prepare /app folder with sample app
87- RUN mkdir -p /app && rm -fr /var/www/html && ln -s /app /var/www/html
88- ADD app/ /app
89-
90- # Environment variables to configure php
78+ # Some more environment variables for PHP
9179ENV PHP_UPLOAD_MAX_FILESIZE 10M
9280ENV PHP_POST_MAX_SIZE 10M
9381
94- # Add volumes for the app and MySql
82+ # Set PHP timezones to America/New_York
83+ RUN sed -i "s/;date.timezone =/date.timezone = America\/ New_York/g" /etc/php/5.6/apache2/php.ini && \
84+ sed -i "s/;date.timezone =/date.timezone = America\/ New_York/g" /etc/php/5.6/cli/php.ini
85+
86+ # Prepare /app folder with sample index.php
87+ RUN mkdir -p /app && rm -fr /var/www/html && ln -s /app /var/www/html
88+ ADD app/ /app
89+
90+ # Add volumes for the app and MySQL
9591VOLUME ["/etc/mysql" , "/var/lib/mysql" , "/app" ]
9692
93+ # Expose Apache and MySQL
9794EXPOSE 80 3306
9895
9996CMD ["/run.sh" ]
0 commit comments