diff --git a/.docker/config/Dockerfile b/.docker/config/Dockerfile new file mode 100644 index 0000000..cb2d05c --- /dev/null +++ b/.docker/config/Dockerfile @@ -0,0 +1,64 @@ +FROM php:5.6-cli + +# +# Tools & libraries +# +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + vim \ + git \ + zip \ + unzip \ + zlib1g-dev \ + libicu-dev \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# +# PHP extensions +# +RUN docker-php-ext-install \ + zip \ + intl \ + mbstring + +# +# PHP configuration: +# - default configuration +# - timezone +# +COPY php.ini /usr/local/etc/php/php.ini +ARG TIMEZONE +RUN echo "\n""date.timezone = $TIMEZONE""\n" >> /usr/local/etc/php/php.ini + +# +# Xdebug +# +RUN pecl install xdebug \ + && docker-php-ext-enable xdebug +COPY xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + +# +# Phing +# +RUN pear channel-discover pear.phing.info \ + && pear install [--alldeps] phing/phing + +# +# Composer + https://packagist.org/packages/hirak/prestissimo package +# +RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ + && php -r "if (hash_file('SHA384', 'composer-setup.php') === \ + '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo \ + 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \ + && php composer-setup.php --install-dir=/usr/local/bin --filename=composer \ + && php -r "unlink('composer-setup.php');" \ + && composer global require --no-plugins --no-scripts hirak/prestissimo \ + && rm -rf /root/.composer/cache/* + +# +# Bash +# +RUN sed -i 's/^# export/export/g' /root/.bashrc \ + && sed -i 's/^# alias/alias/g' /root/.bashrc \ + && echo "\n"'export PATH=/project/vendor/bin:$PATH'"\n" >> /root/.bashrc diff --git a/.docker/config/php.ini b/.docker/config/php.ini new file mode 100644 index 0000000..b984c5d --- /dev/null +++ b/.docker/config/php.ini @@ -0,0 +1,3 @@ +display_errors = On +display_startup_errors = On +error_reporting = E_ALL diff --git a/.docker/config/xdebug.ini b/.docker/config/xdebug.ini new file mode 100644 index 0000000..acd3d8c --- /dev/null +++ b/.docker/config/xdebug.ini @@ -0,0 +1,7 @@ +[xdebug] +zend_extension='xdebug.so' + +xdebug.remote_enable=1 +xdebug.remote_connect_back=1 +xdebug.idekey='PHPSTORM' +xdebug.remote_port=9001 diff --git a/.env b/.env new file mode 100644 index 0000000..c6eb126 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +TIMEZONE=Europe/Warsaw diff --git a/composer.json b/composer.json index 7a6a5da..cbe3b91 100644 --- a/composer.json +++ b/composer.json @@ -11,6 +11,7 @@ } ], "require": { + "php": ">=5.6", "fguillot/json-rpc": "^1.2", "meritoo/common-library": "~0.0.1" }, diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..050add2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3' + +services: + php-cli: + image: meritoo/limesurvey-api-client + container_name: meritoo-limesurvey-api-client + working_dir: /project + entrypoint: php + command: -S 0.0.0.0:9999 + build: + context: ./.docker/config + args: + - TIMEZONE=$TIMEZONE + volumes: + - .:/project