From e91b54d9ec6c1287be2519904a9f39beb3485846 Mon Sep 17 00:00:00 2001 From: Cody Hiar Date: Fri, 2 Sep 2016 14:34:31 -0600 Subject: Moved neovim to alpine linux to save time on compiling --- Dockerfile | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Dockerfile (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cdcf41d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,73 @@ +FROM alpine:3.3 + +# Add the testing repo to get neovim +RUN echo "@testing http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories + +# Install all the needed packages +RUN apk add --no-cache \ + # My Stuff + php \ + php-json \ + php-phar \ + php-openssl \ + curl \ + git \ + ack \ + python-dev \ + python3-dev \ + nodejs \ + neovim@testing \ + # Needed for python pip installs + musl-dev \ + gcc + +# Configure Git +RUN git config --global user.email "codyfh@gmail.com" +RUN git config --global user.name "Cody Hiar" + +# Install pip for both versions of python +RUN python -m ensurepip +RUN python3 -m ensurepip + +# Download composer and move it to new location +RUN curl -sS https://getcomposer.org/installer | php +RUN mv composer.phar /usr/local/bin/composer + +# Update the path to include composer bins +ENV PATH "$PATH:/root/.composer/vendor/bin" + +# Composer install Code Sniff +RUN composer global require "squizlabs/php_codesniffer=*" + +# Install Symfony 2 coding standard +RUN composer global require --dev escapestudios/symfony2-coding-standard:~2.0 + +# Add Symfony 2 coding standard to the phpcs paths +RUN phpcs --config-set installed_paths /root/.composer/vendor/escapestudios/symfony2-coding-standard + +# Install custom linting +ADD PEARish.xml /root/PEARish.xml + +# Install python linting and neovim plugin +RUN pip install neovim flake8 flake8-docstrings flake8-import-order flake8-quotes pep8 pep8-naming pep257 +RUN pip3 install neovim + +# Install nodejs linting +# Install JS linting modules +# The reason for the version specifications is an 'Unmet peerDependancy error' +# https://github.com/airbnb/javascript/issues/952 +# Commented out because I can't make it work right now +# RUN npm install -g eslint@\^2.10.2 eslint-config-airbnb eslint-plugin-import eslint-plugin-react eslint-plugin-jsx-a11y@\^1.2.2 + +# Install the eslintrc.json +ADD eslintrc.json /root/.eslintrc.json + +# Copy over the shellcheck binaries +COPY package/bin/shellcheck /usr/local/bin/ +COPY package/lib/ /usr/local/lib/ +RUN ldconfig /usr/local/lib + + + +ENTRYPOINT ["sh"] + -- cgit v1.2.3