From 92f68bb81b2c7ce269c17c507ed3202c078e2725 Mon Sep 17 00:00:00 2001 From: Andrey Fedoseev Date: Fri, 3 Feb 2017 22:00:30 -0800 Subject: [PATCH] Replace Vagrant with Docker --- .dockerignore | 22 +++++++++++++++++++ Dockerfile | 17 ++++++++++++++ Vagrantfile | 29 ------------------------ docker-compose.yml | 20 +++++++++++++++++ provision.sh | 55 ---------------------------------------------- 5 files changed, 59 insertions(+), 84 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile delete mode 100644 Vagrantfile create mode 100644 docker-compose.yml delete mode 100644 provision.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fdb903c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,22 @@ +build +dist +*.pyc +*.egg-info +*.egg +.idea +.idea.mac +.idea.win +virtualenv +virtualenv-win +.coverage +test_project/db.sqlite3 +/.vagrant/ +/.vagrant.bak/ +.sass-cache/ +/htmlcov/ +/.tox/ +/.cache/ +/docs/_build/ +/docs/_static/ +/docs/_templates/ +coverage.xml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e90c214 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM ubuntu:16.04 +MAINTAINER Andrey Fedoseev +RUN apt-get update && apt-get install -y python2.7-dev python3.5-dev python-pip sqlite3 ruby-dev npm +RUN ln -s /usr/bin/nodejs /usr/local/bin/node +RUN npm install -g coffee-script@1.7.1 +RUN npm install -g livescript@1.4.0 +RUN npm install -g less@1.7.4 +RUN npm install -g babel-cli@6.2.0 +RUN npm install -g stylus@0.50.0 +RUN npm install -g handlebars@4.0.2 +RUN gem install sass -v 3.4.22 +RUN gem install compass -v 1.0.1 +RUN pip install pytest pretend pytest-django pytest-cov flake8 tox django +RUN mkdir /app +WORKDIR /app +ADD . /app/ +RUN pip install -e .[libsass] diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 3a8e77b..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,29 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! -VAGRANTFILE_API_VERSION = "2" - -Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| - # All Vagrant configuration is done here. The most common configuration - # options are documented and commented below. For a complete reference, - # please see the online documentation at vagrantup.com. - - # Every Vagrant virtual environment requires a box to build off of. - config.vm.box = "ubuntu/xenial64" - - # The url from where the 'config.vm.box' box will be fetched if it - # doesn't already exist on the user's system. - config.vm.box_url = "https://vagrantcloud.com/ubuntu/boxes/xenial64" - - config.vm.provision "shell", path: "provision.sh", privileged: false - - config.vm.provider "parallels" do |v, override| - override.vm.box = "parallels/ubuntu-16.04" - override.vm.box_url = "https://vagrantcloud.com/parallels/boxes/ubuntu-16.04" - end - - config.vm.network "private_network", type: "dhcp" - config.vm.synced_folder ".", "/vagrant", type: "nfs" - -end diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..2247570 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +version: '2' +services: + python: + build: . + entrypoint: [] + command: python + volumes: + - .:/app + test: + build: . + entrypoint: [] + command: py.test + volumes: + - .:/app + tox: + build: . + entrypoint: [] + command: tox + volumes: + - .:/app diff --git a/provision.sh b/provision.sh deleted file mode 100644 index cccb504..0000000 --- a/provision.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash - -############ -# packages # -############ - -sudo apt-get update -sudo apt-get install -y virtualenvwrapper python-dev ruby-dev npm sqlite3 - -sudo gem install sass -v 3.4.22 -sudo gem install compass -v 1.0.1 - -# Fix path to nodejs executable -if [ ! -e /usr/local/bin/node ]; then - sudo ln -s /usr/bin/nodejs /usr/local/bin/node -fi - -sudo npm install -g coffee-script@1.7.1 -sudo npm install -g livescript@1.4.0 -sudo npm install -g less@1.7.4 -sudo npm install -g babel-cli@6.2.0 -sudo npm install -g handlebars@4.0.2 -sudo npm install -g stylus@0.50.0 - - -############## -# virtualenv # -############## - -source /usr/share/virtualenvwrapper/virtualenvwrapper.sh - -# Create virtualenv -if [ ! -e ~/.virtualenvs/staticprecompiler ]; then - mkvirtualenv staticprecompiler -fi - -echo "cd /vagrant; export DJANGO_SETTINGS_MODULE=static_precompiler.tests.django_settings" > ~/.virtualenvs/staticprecompiler/bin/postactivate - -workon staticprecompiler - -if [ ! -e ~/.pip ]; then - mkdir ~/.pip -fi - -echo -e "[global]\ndownload_cache = ~/.cache/pip" > ~/.pip/pip.conf - -pip install django==1.7.4 -pip install watchdog -pip install pytest-cov -pip install pytest-django -pip install pretend -pip install libsass -pip install flake8 -pip install tox -pip install -e .