diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..a839c69 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +.DS_Store +.vscode/ +.idea/ +.git/ +tests/ +fixtures/ +coverage/ +coverage.xml +images/ diff --git a/.travis.yml b/.travis.yml index caefbec..0199d52 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,9 @@ language: php php: - '7.0' +services: + - docker + cache: directories: - vendor @@ -16,3 +19,9 @@ script: after_success: - bash <(curl -s https://codecov.io/bash) + - | + if [[ $TRAVIS_TAG == v* ]]; then + docker build -t felixfbecker/php-language-server:${TRAVIS_TAG:1} . + docker login -e="$DOCKER_EMAIL" -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" + docker push felixfbecker/php-language-server:${TRAVIS_TAG:1} + fi diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f4291db --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ + +# Running this container will start a language server that listens for TCP connections on port 2088 +# Every connection will be run in a forked child process + +# Please note that before building the image, you have to install dependencies with `composer install` + +FROM php:7-cli +MAINTAINER Felix Becker + +RUN apt-get update \ + # Needed for CodeSniffer + && apt-get install -y libxml2 libxml2-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN docker-php-ext-configure pcntl --enable-pcntl +RUN docker-php-ext-install pcntl +COPY ./php.ini /usr/local/etc/php/conf.d/ + +COPY ./ /srv/phpls + +WORKDIR /srv/phpls + +EXPOSE 2088 + +CMD ["--tcp-server=0:2088"] + +ENTRYPOINT ["php", "bin/php-language-server.php"] diff --git a/php.ini b/php.ini new file mode 100644 index 0000000..334e2c5 --- /dev/null +++ b/php.ini @@ -0,0 +1,5 @@ + +# php.ini for Docker + +error_reporting = E_ALL +display_errors = stderr