Skip to content
This repository was archived by the owner on Mar 29, 2021. It is now read-only.

Commit 126e03b

Browse files
committed
cleaned up Dockerfile
1 parent 689b244 commit 126e03b

File tree

1 file changed

+37
-40
lines changed

1 file changed

+37
-40
lines changed

Dockerfile

Lines changed: 37 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,98 +2,95 @@ FROM phusion/baseimage:0.10.2
22
MAINTAINER Jake Jarvis <[email protected]>
33
ENV REFRESHED_AT 2019-06-11
44

5-
# based on mattrayner/lamp & dgraziotin/lamp
5+
# Based on mattrayner/lamp & dgraziotin/lamp:
66
# MAINTAINER Matthew Rayner <[email protected]>
77
# MAINTAINER Daniel Graziotin <[email protected]>
88

99
ENV DOCKER_USER_ID 501
1010
ENV DOCKER_USER_GID 20
11-
1211
ENV BOOT2DOCKER_ID 1000
1312
ENV BOOT2DOCKER_GID 50
1413

15-
ENV PHPMYADMIN_VERSION=4.9.0.1
16-
1714
# Tweaks to give Apache/PHP write permissions to the app
1815
RUN 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
2723
ENV DEBIAN_FRONTEND noninteractive
2824
RUN 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
3833
RUN 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
4436
ADD config/start-apache2.sh /start-apache2.sh
4537
ADD config/start-mysqld.sh /start-mysqld.sh
38+
ADD config/create_mysql_users.sh /create_mysql_users.sh
4639
ADD config/run.sh /run.sh
4740
RUN chmod 755 /*.sh
41+
42+
# Add better default configurations
4843
ADD config/supervisord-apache2.conf /etc/supervisor/conf.d/supervisord-apache2.conf
4944
ADD config/supervisord-mysqld.conf /etc/supervisor/conf.d/supervisord-mysqld.conf
5045
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
5148

5249
# Allow MySQL to bind on 0.0.0.0
5350
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
5952

6053
# Remove pre-installed database
6154
RUN 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
7567
RUN 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
8073
ENV 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
8476
RUN 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
9179
ENV PHP_UPLOAD_MAX_FILESIZE 10M
9280
ENV 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
9591
VOLUME ["/etc/mysql", "/var/lib/mysql", "/app" ]
9692

93+
# Expose Apache and MySQL
9794
EXPOSE 80 3306
9895

9996
CMD ["/run.sh"]

0 commit comments

Comments
 (0)