diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Dockerfile | 101 | ||||
-rw-r--r-- | Dockerfile.javascript | 15 | ||||
-rw-r--r-- | Dockerfile.php | 25 | ||||
-rw-r--r-- | Dockerfile.python | 46 | ||||
-rw-r--r-- | Dockerfile.shell | 16 | ||||
-rw-r--r-- | Makefile | 16 |
7 files changed, 116 insertions, 104 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ce3ed24 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vimcache diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 487fc9f..0000000 --- a/Dockerfile +++ /dev/null @@ -1,101 +0,0 @@ -FROM ubuntu:14.04 -MAINTAINER Cody Hiar <codyfh@gmail.com> - -# Fix upstart errors -RUN dpkg-divert --local --rename --add /sbin/initctl -RUN ln -sf /bin/true /sbin/initctl - -# This prevents a bunch of errors during build -ENV DEBIAN_FRONTEND noninteractive - -# Avoid ERROR: invoke-rc.d: policy-rc.d denied execution of start. -RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d - -# Install packages -RUN apt-get update && apt-get install -y \ - software-properties-common \ - curl \ - python-dev \ - python-pip \ - python3-dev \ - python3-pip \ - git \ - ack-grep \ - cabal-install \ - php5 - -# Install Neovim -RUN add-apt-repository ppa:neovim-ppa/unstable -y -RUN apt-get update && apt-get install -y \ - neovim - -# Set git stuff -RUN git config --global user.email "codyfh@gmail.com" -RUN git config --global user.name "Cody Hiar" - -##################################### -# Shell Linting -##################################### - -# Install Shellcheck -RUN cabal update -RUN cabal install shellcheck - -# Include the cabal bins -ENV PATH "$PATH:/root/.cabal/bin" - -##################################### -# Python Linting -##################################### - -# Install the neovim python plugins -RUN pip install neovim flake8 flake8-docstrings flake8-import-order flake8-quotes pep8 pep8-naming pep257 -RUN pip3 install neovim - -# Download my Neovim Repo -RUN git clone https://github.com/thornycrackers/.nvim.git /root/.config/nvim - -# Install neovim Modules -RUN nvim +PlugInstall +qa -RUN nvim +UpdateRemotePlugins +qa - -##################################### -# Javscript Linting -##################################### - -# Install nodejs 6 -RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - -RUN apt-get install -y \ - nodejs - -# Install JS linting modules -# The reason for the version specifications is an 'Unmet peerDependancy error' -# https://github.com/airbnb/javascript/issues/952 -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 - -##################################### -# PHP Linting -##################################### - -# 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 - -WORKDIR /src diff --git a/Dockerfile.javascript b/Dockerfile.javascript new file mode 100644 index 0000000..592f58a --- /dev/null +++ b/Dockerfile.javascript @@ -0,0 +1,15 @@ +FROM thornycrackers/neovim:php +MAINTAINER Cody Hiar <codyfh@gmail.com> + +# Install nodejs 6 +RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - +RUN apt-get install -y \ + nodejs + +# Install JS linting modules +# The reason for the version specifications is an 'Unmet peerDependancy error' +# https://github.com/airbnb/javascript/issues/952 +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 diff --git a/Dockerfile.php b/Dockerfile.php new file mode 100644 index 0000000..7c05dfc --- /dev/null +++ b/Dockerfile.php @@ -0,0 +1,25 @@ +FROM thornycrackers/neovim:python +MAINTAINER Cody Hiar <codyfh@gmail.com> + +# Install packages +RUN apt-get update && apt-get install -y \ + curl \ + php5 + +# 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 diff --git a/Dockerfile.python b/Dockerfile.python new file mode 100644 index 0000000..bca59f3 --- /dev/null +++ b/Dockerfile.python @@ -0,0 +1,46 @@ +FROM ubuntu:14.04 +MAINTAINER Cody Hiar <codyfh@gmail.com> + +# Set the working directory +WORKDIR /src + +# Fix upstart errors +RUN dpkg-divert --local --rename --add /sbin/initctl +RUN ln -sf /bin/true /sbin/initctl + +# This prevents a bunch of errors during build +ENV DEBIAN_FRONTEND noninteractive + +# Avoid ERROR: invoke-rc.d: policy-rc.d denied execution of start. +RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d + + +# Install packages +RUN apt-get update && apt-get install -y \ + software-properties-common \ + git \ + ack-grep \ + python-dev \ + python-pip \ + python3-dev \ + python3-pip + +# Set git stuff +RUN git config --global user.email "codyfh@gmail.com" +RUN git config --global user.name "Cody Hiar" + +# Install Neovim +RUN add-apt-repository ppa:neovim-ppa/unstable -y +RUN apt-get update && apt-get install -y \ + neovim + +# Install the neovim python plugins +RUN pip install neovim flake8 flake8-docstrings flake8-import-order flake8-quotes pep8 pep8-naming pep257 +RUN pip3 install neovim + +# Download my Neovim Repo +RUN git clone https://github.com/thornycrackers/.nvim.git /root/.config/nvim + +# Install neovim Modules +RUN nvim +PlugInstall +qa +RUN nvim +UpdateRemotePlugins +qa diff --git a/Dockerfile.shell b/Dockerfile.shell new file mode 100644 index 0000000..3e34605 --- /dev/null +++ b/Dockerfile.shell @@ -0,0 +1,16 @@ +FROM thornycrackers/neovim:javascript +MAINTAINER Cody Hiar <codyfh@gmail.com> + +# Install packages +RUN apt-get update && apt-get install -y \ + cabal-install + +# Install Shellcheck +RUN cabal update +RUN cabal install shellcheck + +# Include the cabal bins +ENV PATH "$PATH:/root/.cabal/bin" + + + @@ -1,5 +1,15 @@ help: - @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' -build: ## Build the docker image - docker build -t thornycrackers/neovim:local . + +build-python: ## Build the neovim python image, this is the base image + docker build -f Dockerfile.python -t thornycrackers/neovim:python . + +build-php: ## Build the neovim php image, depends on python tag + docker build -f Dockerfile.php -t thornycrackers/neovim:php . + +build-javascript: ## Build the neovim javascript image, depends on php tag + docker build -f Dockerfile.javascript -t thornycrackers/neovim:javascript . + +build-shell: ## Build the neovim shell image, depends on javascript tag + docker build -f Dockerfile.shell -t thornycrackers/neovim . |