From 99e241793881763a0738547fe466e06f4e6876ec Mon Sep 17 00:00:00 2001 From: BJ Dierkes Date: Tue, 18 Apr 2017 22:34:42 -0500 Subject: [PATCH] Rework Docker on Alpine --- Dockerfile | 6 +++++- docker-compose.yml | 2 ++ docker/Dockerfile.dev | 19 ++++++++++++------- requirements-dev.txt | 2 +- requirements.txt | 4 +++- 5 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1de55ccf..9102fd81 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,2 +1,6 @@ -FROM python:3.6-onbuild +FROM python:3.6-alpine MAINTAINER BJ Dierkes +WORKDIR /app +COPY . /app +RUN python setup.py install \ + && rm -rf /app diff --git a/docker-compose.yml b/docker-compose.yml index fa26c47b..7267649d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,8 @@ services: context: . dockerfile: docker/Dockerfile.dev hostname: cement + stdin_open: true + tty: true volumes: - ".:/usr/src/app" links: diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index d5425915..3a7654f9 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -1,9 +1,14 @@ -FROM python:3.6-onbuild +FROM python:3.6-alpine MAINTAINER BJ Dierkes - -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - libmemcached-dev \ +WORKDIR /app +COPY requirements-dev.txt /app/ +RUN apk update \ + && apk add libmemcached-dev \ + gcc \ + musl-dev \ + cyrus-sasl-dev \ + zlib-dev \ + make \ && pip install --no-cache-dir -r requirements-dev.txt - -CMD ["/bin/bash"] +COPY . /app +CMD ["/bin/ash"] diff --git a/requirements-dev.txt b/requirements-dev.txt index 4593fc06..875adcfd 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,4 @@ -# The following are only required in development, not production +# The following are only required for Cement development nose coverage sphinx diff --git a/requirements.txt b/requirements.txt index fafa3d0d..d5cccffd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,3 @@ -# Cement does not have any external dependencies +# Cement core does not have any external dependencies, however optional +# extension might. It is up to the application developer to manage +# requirements for optional extensions/dependencies.