Added a Dockerfile

This commit is contained in:
Nathan Ostgard 2016-01-10 11:00:56 -08:00
parent a904fcef82
commit bbd3cdacc0
4 changed files with 39 additions and 5 deletions

1
.dockerignore Normal file
View File

@ -0,0 +1 @@
.git

25
Dockerfile Normal file
View File

@ -0,0 +1,25 @@
FROM gliderlabs/alpine
COPY requirements.txt /opt/elodie/requirements.txt
COPY docs/requirements.txt /opt/elodie/docs/requirements.txt
COPY elodie/tests/requirements.txt /opt/elodie/elodie/tests/requirements.txt
WORKDIR /opt/elodie
RUN apk add --update boost-python ca-certificates exiftool exiv2 make python py-pip && \
apk add --virtual build-dependencies build-base boost-dev exiv2-dev openssl python-dev scons wget && \
pip install -r docs/requirements.txt && \
pip install -r elodie/tests/requirements.txt && \
wget -O /tmp/pyexiv2-0.3.2.tar.bz2 https://launchpad.net/pyexiv2/0.3.x/0.3.2/+download/pyexiv2-0.3.2.tar.bz2 && \
echo "9c0377ca4cf7d5ceeee994af0b5536ae /tmp/pyexiv2-0.3.2.tar.bz2" | md5sum -c - && \
tar -C /tmp -xjf /tmp/pyexiv2-0.3.2.tar.bz2 && \
rm -f /tmp/pyexiv2-0.3.2.tar.bz2 && \
cd /tmp/pyexiv2-0.3.2 && \
scons && \
scons install && \
cd / && \
apk del build-dependencies && \
rm -rf /root/.cache/pip /tmp/* /var/cache/apk/*
COPY . /opt/elodie
CMD ["/bin/sh"]

View File

@ -1,12 +1,13 @@
# Project imports # Project imports
import os import os
import sys
import re import re
import shutil import shutil
import time
import sys
from datetime import datetime from datetime import datetime
from datetime import timedelta from datetime import timedelta
import time
import mock
sys.path.insert(0, os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))))) sys.path.insert(0, os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))))
@ -31,7 +32,7 @@ def test_create_directory_success():
assert status == True assert status == True
assert os.path.isdir(folder) == True assert os.path.isdir(folder) == True
assert os.path.exists(folder) == True assert os.path.exists(folder) == True
# Clean up # Clean up
shutil.rmtree(folder) shutil.rmtree(folder)
@ -50,9 +51,15 @@ def test_create_directory_recursive_success():
shutil.rmtree(folder) shutil.rmtree(folder)
def test_create_directory_invalid_permissions(): @mock.patch('elodie.filesystem.os.makedirs')
def test_create_directory_invalid_permissions(mock_makedirs):
if os.name == 'nt': if os.name == 'nt':
raise SkipTest("It isn't implemented on Windows") raise SkipTest("It isn't implemented on Windows")
# Mock the case where makedirs raises an OSError because the user does
# not have permission to create the given directory.
mock_makedirs.side_effect = OSError()
filesystem = FileSystem() filesystem = FileSystem()
status = filesystem.create_directory('/apathwhichdoesnotexist/afolderwhichdoesnotexist') status = filesystem.create_directory('/apathwhichdoesnotexist/afolderwhichdoesnotexist')

View File

@ -1,3 +1,4 @@
-r ../../requirements.txt -r ../../requirements.txt
flake8>=2.2.5,<3.0
mock>=1.3.0,<2.0 mock>=1.3.0,<2.0
nose>=1.3.7,<2.0 nose>=1.3.7,<2.0