@@ -2,98 +2,95 @@ FROM phusion/baseimage:0.10.2
2
2
MAINTAINER Jake Jarvis <
[email protected] >
3
3
ENV REFRESHED_AT 2019-06-11
4
4
5
- # based on mattrayner/lamp & dgraziotin/lamp
5
+ # Based on mattrayner/lamp & dgraziotin/lamp:
6
6
# MAINTAINER Matthew Rayner <[email protected] >
7
7
# MAINTAINER Daniel Graziotin <[email protected] >
8
8
9
9
ENV DOCKER_USER_ID 501
10
10
ENV DOCKER_USER_GID 20
11
-
12
11
ENV BOOT2DOCKER_ID 1000
13
12
ENV BOOT2DOCKER_GID 50
14
13
15
- ENV PHPMYADMIN_VERSION=4.9.0.1
16
-
17
14
# Tweaks to give Apache/PHP write permissions to the app
18
15
RUN usermod -u ${BOOT2DOCKER_ID} www-data && \
19
16
usermod -G staff www-data && \
20
17
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
25
21
26
22
# Install packages
27
23
ENV DEBIAN_FRONTEND noninteractive
28
24
RUN add-apt-repository -y ppa:ondrej/php && \
29
25
add-apt-repository -y ppa:ondrej/php5-compat && \
30
26
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C && \
31
27
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
36
31
37
- # Point PHP CLI to use 5.6
32
+ # Point CLI to use PHP 5.6
38
33
RUN ln -sfn /usr/bin/php5.6 /etc/alternatives/php
39
34
40
- # mcrypt needed for phpMyAdmin
41
- RUN phpenmod mcrypt
42
-
43
- # Add image configuration and scripts
35
+ # Add build scripts
44
36
ADD config/start-apache2.sh /start-apache2.sh
45
37
ADD config/start-mysqld.sh /start-mysqld.sh
38
+ ADD config/create_mysql_users.sh /create_mysql_users.sh
46
39
ADD config/run.sh /run.sh
47
40
RUN chmod 755 /*.sh
41
+
42
+ # Add better default configurations
48
43
ADD config/supervisord-apache2.conf /etc/supervisor/conf.d/supervisord-apache2.conf
49
44
ADD config/supervisord-mysqld.conf /etc/supervisor/conf.d/supervisord-mysqld.conf
50
45
ADD 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
51
48
52
49
# Allow MySQL to bind on 0.0.0.0
53
50
RUN 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
59
52
60
53
# Remove pre-installed database
61
54
RUN rm -rf /var/lib/mysql
62
55
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
66
58
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
73
65
74
- # Add Composer
66
+ # Install Composer
75
67
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
76
68
php composer-setup.php && \
77
69
php -r "unlink('composer-setup.php');" && \
78
70
mv composer.phar /usr/local/bin/composer
79
71
72
+ # Set "secure" MySQL admin password
80
73
ENV MYSQL_PASS:-$(pwgen -s 12 1)
81
74
82
- # Enable .htaccess
83
- ADD config/apache_default /etc/apache2/sites-available/000-default.conf
75
+ # Enable mod_rewrite
84
76
RUN a2enmod rewrite
85
77
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
91
79
ENV PHP_UPLOAD_MAX_FILESIZE 10M
92
80
ENV PHP_POST_MAX_SIZE 10M
93
81
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
95
91
VOLUME ["/etc/mysql" , "/var/lib/mysql" , "/app" ]
96
92
93
+ # Expose Apache and MySQL
97
94
EXPOSE 80 3306
98
95
99
96
CMD ["/run.sh" ]
0 commit comments