From e83f18e0e63b34542d9f383b1a451182e1b98758 Mon Sep 17 00:00:00 2001 From: BJ Dierkes Date: Fri, 9 Feb 2024 08:28:02 -0600 Subject: [PATCH] Add Docker Dev Environments --- Makefile | 6 ++++ docker-compose.yml | 55 +++++++++++++++++++++++++++++++++++++ docker/Dockerfile.dev | 27 ++++++++++++++++++ docker/Dockerfile.dev-py310 | 27 ++++++++++++++++++ docker/Dockerfile.dev-py311 | 27 ++++++++++++++++++ docker/Dockerfile.dev-py312 | 27 ++++++++++++++++++ docker/Dockerfile.dev-py38 | 27 ++++++++++++++++++ docker/Dockerfile.dev-py39 | 27 ++++++++++++++++++ docker/vimrc | 3 ++ 9 files changed, 226 insertions(+) create mode 100644 docker-compose.yml create mode 100644 docker/Dockerfile.dev create mode 100644 docker/Dockerfile.dev-py310 create mode 100644 docker/Dockerfile.dev-py311 create mode 100644 docker/Dockerfile.dev-py312 create mode 100644 docker/Dockerfile.dev-py38 create mode 100644 docker/Dockerfile.dev-py39 create mode 100644 docker/vimrc diff --git a/Makefile b/Makefile index d4a56374..c847ab66 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,12 @@ all: init test doc clean +dev: + docker-compose up -d + docker-compose exec cement pip install -r requirements-dev.txt + docker-compose exec cement python setup.py develop + docker-compose exec cement /bin/bash + init: pip install --upgrade -r requirements-dev.txt diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..19215733 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,55 @@ +version: "3" +services: + cement: &DEFAULTS + image: "cement:dev" + build: + context: . + dockerfile: docker/Dockerfile.dev + hostname: cement + stdin_open: true + tty: true + volumes: + - '.:/src' + working_dir: '/src' + links: + - redis:redis + - memcached:memcached + environment: + REDIS_HOST: redis + MEMCACHED_HOST: memcached + + cement-py38: + <<: *DEFAULTS + image: "cement:dev-py38" + build: + context: . + dockerfile: docker/Dockerfile.dev-py38 + + cement-py39: + <<: *DEFAULTS + image: "cement:dev-py39" + build: + context: . + dockerfile: docker/Dockerfile.dev-py39 + + cement-py310: + <<: *DEFAULTS + image: "cement:dev-py310" + build: + context: . + dockerfile: docker/Dockerfile.dev-py310 + + cement-py311: + <<: *DEFAULTS + image: "cement:dev-py311" + build: + context: . + dockerfile: docker/Dockerfile.dev-py311 + + redis: + image: redis:latest + hostname: redis + + memcached: + image: memcached:latest + hostname: memcached \ No newline at end of file diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev new file mode 100644 index 00000000..7fc8c26e --- /dev/null +++ b/docker/Dockerfile.dev @@ -0,0 +1,27 @@ +FROM python:3.12-alpine +LABEL MAINTAINER="BJ Dierkes " +ENV PS1="\[\e[0;33m\]|> cement-py312 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " + +WORKDIR /src +COPY requirements-dev.txt /src/ +RUN apk update \ + && apk add libmemcached-dev \ + gcc \ + musl-dev \ + cyrus-sasl-dev \ + zlib-dev \ + make \ + vim \ + bash \ + git \ + libffi \ + libffi-dev \ + openssl-dev \ + jq \ + && ln -sf /usr/bin/vim /usr/bin/vi \ + && pip install --no-cache-dir -r requirements-dev.txt \ + && pip install --upgrade -r requirements-dev.txt +COPY . /src +COPY docker/vimrc /root/.vimrc +RUN python setup.py develop +CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py310 b/docker/Dockerfile.dev-py310 new file mode 100644 index 00000000..a88502f1 --- /dev/null +++ b/docker/Dockerfile.dev-py310 @@ -0,0 +1,27 @@ +FROM python:3.10-alpine +LABEL MAINTAINER="BJ Dierkes " +ENV PS1="\[\e[0;33m\]|> cement-py310 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " + +WORKDIR /src +COPY requirements-dev.txt /src/ +RUN apk update \ + && apk add libmemcached-dev \ + gcc \ + musl-dev \ + cyrus-sasl-dev \ + zlib-dev \ + make \ + vim \ + bash \ + git \ + libffi \ + libffi-dev \ + openssl-dev \ + jq \ + && ln -sf /usr/bin/vim /usr/bin/vi \ + && pip install --no-cache-dir -r requirements-dev.txt \ + && pip install --upgrade -r requirements-dev.txt +COPY . /src +COPY docker/vimrc /root/.vimrc +RUN python setup.py develop +CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py311 b/docker/Dockerfile.dev-py311 new file mode 100644 index 00000000..1caa4654 --- /dev/null +++ b/docker/Dockerfile.dev-py311 @@ -0,0 +1,27 @@ +FROM python:3.11-alpine +LABEL MAINTAINER="BJ Dierkes " +ENV PS1="\[\e[0;33m\]|> cement-py311 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " + +WORKDIR /src +COPY requirements-dev.txt /src/ +RUN apk update \ + && apk add libmemcached-dev \ + gcc \ + musl-dev \ + cyrus-sasl-dev \ + zlib-dev \ + make \ + vim \ + bash \ + git \ + libffi \ + libffi-dev \ + openssl-dev \ + jq \ + && ln -sf /usr/bin/vim /usr/bin/vi \ + && pip install --no-cache-dir -r requirements-dev.txt \ + && pip install --upgrade -r requirements-dev.txt +COPY . /src +COPY docker/vimrc /root/.vimrc +RUN python setup.py develop +CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py312 b/docker/Dockerfile.dev-py312 new file mode 100644 index 00000000..7fc8c26e --- /dev/null +++ b/docker/Dockerfile.dev-py312 @@ -0,0 +1,27 @@ +FROM python:3.12-alpine +LABEL MAINTAINER="BJ Dierkes " +ENV PS1="\[\e[0;33m\]|> cement-py312 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " + +WORKDIR /src +COPY requirements-dev.txt /src/ +RUN apk update \ + && apk add libmemcached-dev \ + gcc \ + musl-dev \ + cyrus-sasl-dev \ + zlib-dev \ + make \ + vim \ + bash \ + git \ + libffi \ + libffi-dev \ + openssl-dev \ + jq \ + && ln -sf /usr/bin/vim /usr/bin/vi \ + && pip install --no-cache-dir -r requirements-dev.txt \ + && pip install --upgrade -r requirements-dev.txt +COPY . /src +COPY docker/vimrc /root/.vimrc +RUN python setup.py develop +CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py38 b/docker/Dockerfile.dev-py38 new file mode 100644 index 00000000..23fcd328 --- /dev/null +++ b/docker/Dockerfile.dev-py38 @@ -0,0 +1,27 @@ +FROM python:3.8-alpine +LABEL MAINTAINER="BJ Dierkes " +ENV PS1="\[\e[0;33m\]|> cement-py38 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " + +WORKDIR /src +COPY requirements-dev.txt /src/ +RUN apk update \ + && apk add libmemcached-dev \ + gcc \ + musl-dev \ + cyrus-sasl-dev \ + zlib-dev \ + make \ + vim \ + bash \ + git \ + libffi \ + libffi-dev \ + openssl-dev \ + jq \ + && ln -sf /usr/bin/vim /usr/bin/vi \ + && pip install --no-cache-dir -r requirements-dev.txt \ + && pip install --upgrade -r requirements-dev.txt +COPY . /src +COPY docker/vimrc /root/.vimrc +RUN python setup.py develop +CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py39 b/docker/Dockerfile.dev-py39 new file mode 100644 index 00000000..32a8b91d --- /dev/null +++ b/docker/Dockerfile.dev-py39 @@ -0,0 +1,27 @@ +FROM python:3.9-alpine +LABEL MAINTAINER="BJ Dierkes " +ENV PS1="\[\e[0;33m\]|> cement-py39 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " + +WORKDIR /src +COPY requirements-dev.txt /src/ +RUN apk update \ + && apk add libmemcached-dev \ + gcc \ + musl-dev \ + cyrus-sasl-dev \ + zlib-dev \ + make \ + vim \ + bash \ + git \ + libffi \ + libffi-dev \ + openssl-dev \ + jq \ + && ln -sf /usr/bin/vim /usr/bin/vi \ + && pip install --no-cache-dir -r requirements-dev.txt \ + && pip install --upgrade -r requirements-dev.txt +COPY . /src +COPY docker/vimrc /root/.vimrc +RUN python setup.py develop +CMD ["/bin/bash"] diff --git a/docker/vimrc b/docker/vimrc new file mode 100644 index 00000000..2dffde9a --- /dev/null +++ b/docker/vimrc @@ -0,0 +1,3 @@ +set expandtab +set tabstop=4 +syntax on