From 353b48394bd269def088bbe79a5a7928e6aca9d1 Mon Sep 17 00:00:00 2001 From: PJ Dietz Date: Sat, 22 Jul 2017 14:39:10 -0400 Subject: [PATCH] Setup Docker --- docker-compose.yml | 9 ++++++++ docker/Dockerfile | 42 ++++++++++++++++++++++++++++++++++++++ docker/install-composer.sh | 16 +++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 docker-compose.yml create mode 100644 docker/Dockerfile create mode 100755 docker/install-composer.sh diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c264c3c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: '2' +services: + + php: + build: + context: . + dockerfile: ./docker/Dockerfile + volumes: + - .:/usr/local/src/wellrested diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..b525857 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,42 @@ +FROM php:7.1-cli + +RUN DEBIAN_FRONTEND=noninteractive \ + apt-get update && \ + apt-get -y install \ + gettext \ + libssl-dev \ + unzip \ + wget \ + zip \ + && rm -rf /var/lib/apt/lists/* + +# Install Xdebug +RUN yes | pecl install xdebug \ + && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini + +# Download and install Composer +COPY ./docker/install-composer.sh /tmp/install-composer.sh +RUN chmod +x /tmp/install-composer.sh; sync && \ + /tmp/install-composer.sh && \ + rm /tmp/install-composer.sh + +# Create a directory for project sources and user's home directory +RUN mkdir /usr/local/src/wellrested && \ + chown -R www-data:www-data /usr/local/src/wellrested && \ + mkdir /var/www && \ + chown -R www-data:www-data /var/www + +COPY ./src /usr/local/src/wellrested/src +COPY ./test /usr/local/src/wellrested/test +COPY ./composer.* /usr/local/src/wellrested/ +COPY ./phpunit.xml.dist /usr/local/src/wellrested/ + +# Add symlink for phpunit for easier running +RUN ln -s /usr/local/src/wellrested/vendor/bin/phpunit /usr/local/bin/phpunit + +WORKDIR /usr/local/src/wellrested + +USER www-data + +# Install Composer dependencies +RUN composer install diff --git a/docker/install-composer.sh b/docker/install-composer.sh new file mode 100755 index 0000000..d012118 --- /dev/null +++ b/docker/install-composer.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +EXPECTED_SIGNATURE=$(wget https://composer.github.io/installer.sig -O - -q) +php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" +ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');") + +if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then + >&2 echo 'ERROR: Invalid installer signature' + rm composer-setup.php + exit 1 +fi + +php composer-setup.php --quiet --filename=composer --install-dir=/usr/local/bin +RESULT=$? +rm composer-setup.php +exit $RESULT