aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Dockerfile101
-rw-r--r--Dockerfile.javascript15
-rw-r--r--Dockerfile.php25
-rw-r--r--Dockerfile.python46
-rw-r--r--Dockerfile.shell16
-rw-r--r--Makefile16
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"
+
+
+
diff --git a/Makefile b/Makefile
index 82ba642..299454f 100644
--- a/Makefile
+++ b/Makefile
@@ -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 .