aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile54
1 files changed, 23 insertions, 31 deletions
diff --git a/Dockerfile b/Dockerfile
index ea917c6..07bf713 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,9 +1,12 @@
FROM alpine:3.4
+########################################
+# System Stuff
+########################################
+
# Add the testing repo to get neovim
RUN echo "http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN echo "http://dl-4.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
-
# Install all the needed packages
RUN apk add --no-cache \
# My Stuff
@@ -28,73 +31,62 @@ RUN apk add --no-cache \
# Needed for infocmp and tic
ncurses
-# Configure Git
-RUN git config --global user.email "codyfh@gmail.com"
-RUN git config --global user.name "Cody Hiar"
+########################################
+# PHP
+########################################
# 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
+########################################
+# Python
+########################################
+
# Install python linting and neovim plugin
RUN python -m ensurepip
RUN pip install neovim jedi flake8 flake8-docstrings flake8-isort flake8-quotes pep8 pep8-naming pep257 isort
RUN pip3 install neovim jedi flake8 flake8-docstrings flake8-isort flake8-quotes pep8 pep8-naming pep257 isort
-
# Add isort config
ADD isort.cfg /root/.isort.cfg
-
# Add flake8 config
ADD flake8 /root/.flake8
-# 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
+########################################
+# Shellcheck
+########################################
# Copy over the shellcheck binaries
COPY package/bin/shellcheck /usr/local/bin/
COPY package/lib/ /usr/local/lib/
RUN ldconfig /usr/local/lib
-# Download my Neovim Repo
-RUN git clone https://github.com/thornycrackers/.nvim.git /root/.config/nvim
-
-# Install neovim Modules
-RUN nvim +PlugInstall +qall
-RUN nvim +UpdateRemotePlugins +qall
-
+########################################
+# Personalizations
+########################################
# Add some aliases
ADD bashrc /root/.bashrc
-
+# Change the workdir, Put it inside root so I can see neovim settings in finder
WORKDIR /root/app
-
# Better terminal support
ENV TERM screen-256color
-
# Neovim needs this so that <ctrl-h> can work
RUN infocmp $TERM | sed 's/kbs=^[hH]/kbs=\\177/' > /tmp/$TERM.ti
RUN tic /tmp/$TERM.ti
-
# Command for the image
CMD ["/bin/bash"]
+# Add nvim config. Put this last since it changes often
+ADD nvim /root/.config/nvim
+# Install neovim Modules
+RUN nvim +PlugInstall +qall
+RUN nvim +UpdateRemotePlugins +qall