aboutsummaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
authorCody Hiar <cody.hiar@investopedia.com>2016-09-02 14:34:31 -0600
committerCody Hiar <cody.hiar@investopedia.com>2016-09-02 17:12:04 -0600
commite91b54d9ec6c1287be2519904a9f39beb3485846 (patch)
tree56960c59f344b358b0e9b26d5ad76c67b0f189ea /Dockerfile
parent7cfc1e88685fa4973d3e0020312c00615ef191a9 (diff)
Moved neovim to alpine linux to save time on compiling
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile73
1 files changed, 73 insertions, 0 deletions
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"]
+