Add Docker Dev Environments

This commit is contained in:
BJ Dierkes 2024-02-09 08:28:02 -06:00
parent 196d4733f8
commit e83f18e0e6
9 changed files with 226 additions and 0 deletions

View File

@ -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

55
docker-compose.yml Normal file
View File

@ -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

27
docker/Dockerfile.dev Normal file
View File

@ -0,0 +1,27 @@
FROM python:3.12-alpine
LABEL MAINTAINER="BJ Dierkes <derks@datafolklabs.com>"
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"]

View File

@ -0,0 +1,27 @@
FROM python:3.10-alpine
LABEL MAINTAINER="BJ Dierkes <derks@datafolklabs.com>"
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"]

View File

@ -0,0 +1,27 @@
FROM python:3.11-alpine
LABEL MAINTAINER="BJ Dierkes <derks@datafolklabs.com>"
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"]

View File

@ -0,0 +1,27 @@
FROM python:3.12-alpine
LABEL MAINTAINER="BJ Dierkes <derks@datafolklabs.com>"
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"]

View File

@ -0,0 +1,27 @@
FROM python:3.8-alpine
LABEL MAINTAINER="BJ Dierkes <derks@datafolklabs.com>"
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"]

View File

@ -0,0 +1,27 @@
FROM python:3.9-alpine
LABEL MAINTAINER="BJ Dierkes <derks@datafolklabs.com>"
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"]

3
docker/vimrc Normal file
View File

@ -0,0 +1,3 @@
set expandtab
set tabstop=4
syntax on