Skip to content

Commit fef8ffb

Browse files
committed
Refactor installation for better caching
1 parent 1264cec commit fef8ffb

File tree

3 files changed

+39
-19
lines changed

3 files changed

+39
-19
lines changed

Dockerfile

+13-9
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
FROM php:7.1-apache-stretch
22

3-
ENV LD_LIBRARY_PATH /usr/local/instantclient
4-
5-
# Setup the required extensions.
63
ARG DEBIAN_FRONTEND=noninteractive
74

85
# Install NVM and the current (as of 26/02/2019) LTS version of Node.
@@ -12,14 +9,21 @@ RUN mkdir -p $NVM_DIR && \
129
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash && \
1310
. $NVM_DIR/nvm.sh && nvm install $NODE_VERSION && nvm use --delete-prefix $NODE_VERSION
1411

15-
ADD root/ /
16-
# Fix the original permissions of /tmp, the PHP default upload tmp dir.
17-
RUN chmod 777 /tmp && chmod +t /tmp
12+
# Install the standard PHP extensions.
13+
ADD root/tmp/setup/php-extensions.sh /tmp/setup/
14+
RUN chmod 777 /tmp && chmod +t /tmp && \
15+
/tmp/setup/php-extensions.sh
16+
17+
# Install the PHP MSSQL Extension.
18+
ADD root/tmp/setup/mssql-extension.sh /tmp/setup/
19+
RUN chmod 777 /tmp && chmod +t /tmp && \
20+
/tmp/setup/mssql-extension.sh
1821

19-
# Setup the required extensions.
20-
RUN /tmp/setup/php-extensions.sh
21-
RUN /tmp/setup/oci8-extension.sh
22+
# Install the PHP OCI8 Extension.
2223
ENV LD_LIBRARY_PATH /usr/local/instantclient
24+
ADD root/tmp/setup/oci8-extension.sh /tmp/setup/
25+
RUN chmod 777 /tmp && chmod +t /tmp && \
26+
/tmp/setup/oci8-extension.sh
2327

2428
RUN mkdir /var/www/moodledata && chown www-data /var/www/moodledata && \
2529
mkdir /var/www/phpunitdata && chown www-data /var/www/phpunitdata && \

root/tmp/setup/mssql-extension.sh

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
BUILD_PACKAGES="gnupg unixodbc-dev"
6+
7+
apt-get update
8+
apt-get install -y --no-install-recommends apt-transport-https \
9+
$BUILD_PACKAGES
10+
11+
# Install Microsoft dependcies for sqlsrv.
12+
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
13+
curl https://packages.microsoft.com/config/debian/9/prod.list -o /etc/apt/sources.list.d/mssql-release.list
14+
apt-get update
15+
ACCEPT_EULA=Y apt-get install -y msodbcsql17
16+
17+
pecl install sqlsrv
18+
docker-php-ext-enable sqlsrv
19+
20+
# Keep our image size down..
21+
pecl clear-cache
22+
apt-get remove --purge -y $BUILD_PACKAGES
23+
apt-get autoremove -y
24+
apt-get clean
25+
rm -rf /var/lib/apt/lists/*

root/tmp/setup/php-extensions.sh

+1-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ echo "Installing apt dependencies"
77
# Build packages will be added during the build, but will be removed at the end.
88
BUILD_PACKAGES="gettext gnupg libcurl4-openssl-dev libfreetype6-dev libicu-dev libjpeg62-turbo-dev \
99
libldap2-dev libmariadbclient-dev libmemcached-dev libpng-dev libpq-dev libxml2-dev libxslt-dev \
10-
unixodbc-dev zlib1g-dev"
10+
zlib1g-dev"
1111

1212
# Packages for Postgres.
1313
PACKAGES_POSTGRES="libpq5"
@@ -64,15 +64,6 @@ docker-php-ext-enable solr memcached redis apcu igbinary
6464

6565
echo 'apc.enable_cli = On' >> /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini
6666

67-
# Install Microsoft dependcies for sqlsrv.
68-
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
69-
curl https://packages.microsoft.com/config/debian/9/prod.list -o /etc/apt/sources.list.d/mssql-release.list
70-
apt-get update
71-
ACCEPT_EULA=Y apt-get install -y msodbcsql17
72-
73-
pecl install sqlsrv
74-
docker-php-ext-enable sqlsrv
75-
7667
# Keep our image size down..
7768
pecl clear-cache
7869
apt-get remove --purge -y $BUILD_PACKAGES

0 commit comments

Comments
 (0)