From 208d09746807f25d295c4857626ac31fd6ee4af0 Mon Sep 17 00:00:00 2001 From: yuvipanda Date: Sat, 29 Jul 2017 22:38:47 -0700 Subject: [PATCH] Fix dockerfile builds and add tests for them --- .travis.yml | 1 + repo2docker/detectors.py | 9 +++++++++ tests/dockerfile/jupyter-stack/Dockerfile | 4 ++++ tests/dockerfile/jupyter-stack/verify | 7 +++++++ tests/dockerfile/simple/Dockerfile | 6 ++++++ tests/dockerfile/simple/sayhi.sh | 3 +++ tests/dockerfile/simple/verify | 3 +++ 7 files changed, 33 insertions(+) create mode 100644 tests/dockerfile/jupyter-stack/Dockerfile create mode 100755 tests/dockerfile/jupyter-stack/verify create mode 100644 tests/dockerfile/simple/Dockerfile create mode 100755 tests/dockerfile/simple/sayhi.sh create mode 100755 tests/dockerfile/simple/verify diff --git a/.travis.yml b/.travis.yml index b81db682..625c2f2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,3 +18,4 @@ env: - REPO_TYPE=conda - REPO_TYPE=venv - REPO_TYPE=julia + - REPO_TYPE=dockerfile diff --git a/repo2docker/detectors.py b/repo2docker/detectors.py index 7afabc38..f6fa2d65 100644 --- a/repo2docker/detectors.py +++ b/repo2docker/detectors.py @@ -677,6 +677,15 @@ class DockerBuildPack(BuildPack): with open('Dockerfile') as f: return f.read() + def build(self, image_spec): + client = docker.APIClient(version='auto', **docker.utils.kwargs_from_env()) + for line in client.build( + path=os.getcwd(), + tag=image_spec, + decode=True + ): + yield line + class LegacyBinderDockerBuildPack(BuildPack): name = 'Legacy Binder Dockerfile' diff --git a/tests/dockerfile/jupyter-stack/Dockerfile b/tests/dockerfile/jupyter-stack/Dockerfile new file mode 100644 index 00000000..a25b0cdb --- /dev/null +++ b/tests/dockerfile/jupyter-stack/Dockerfile @@ -0,0 +1,4 @@ +FROM jupyter/base-notebook:b4dd11e16ae4 + +RUN pip install there +ADD verify verify diff --git a/tests/dockerfile/jupyter-stack/verify b/tests/dockerfile/jupyter-stack/verify new file mode 100755 index 00000000..71cd9c52 --- /dev/null +++ b/tests/dockerfile/jupyter-stack/verify @@ -0,0 +1,7 @@ +#!/usr/bin/env python +import sys + +assert sys.version_info[:2] == (3, 6) + +import jupyter +import there diff --git a/tests/dockerfile/simple/Dockerfile b/tests/dockerfile/simple/Dockerfile new file mode 100644 index 00000000..e8ab22db --- /dev/null +++ b/tests/dockerfile/simple/Dockerfile @@ -0,0 +1,6 @@ +FROM alpine:3.5 + +ENTRYPOINT "/bin/sh" + +ADD sayhi.sh /usr/local/bin/sayhi.sh +ADD verify verify diff --git a/tests/dockerfile/simple/sayhi.sh b/tests/dockerfile/simple/sayhi.sh new file mode 100755 index 00000000..fae96a32 --- /dev/null +++ b/tests/dockerfile/simple/sayhi.sh @@ -0,0 +1,3 @@ +#!/bin/bash +echo hi +exit 0 diff --git a/tests/dockerfile/simple/verify b/tests/dockerfile/simple/verify new file mode 100755 index 00000000..65d02e29 --- /dev/null +++ b/tests/dockerfile/simple/verify @@ -0,0 +1,3 @@ +#!/bin/sh +set -e +/usr/local/bin/sayhi.sh