diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile new file mode 100644 index 00000000..e4baeea3 --- /dev/null +++ b/docker/dev/Dockerfile @@ -0,0 +1,21 @@ +# use latest python alphine image. +FROM python:rc-alpine3.12 + +# install system dependencies. +RUN apk update && apk add --no-cache \ + gcc libc-dev g++ graphviz git bash go imagemagick inkscape + +# install go package. +RUN go get github.com/mingrammer/round + +# add go bin to path. +ENV PATH "$PATH:/root/go/bin" + +# project directory. +WORKDIR /usr/src/diagrams + +# Copy the rest of your app's source code from your host to your image filesystem. +COPY . . + +# install python requirements. +RUN pip install -r ./docker/dev/requirements.txt diff --git a/docker/dev/requirements.txt b/docker/dev/requirements.txt new file mode 100644 index 00000000..294444f1 --- /dev/null +++ b/docker/dev/requirements.txt @@ -0,0 +1,2 @@ +diagrams +black \ No newline at end of file diff --git a/docker/dev/setup.txt b/docker/dev/setup.txt new file mode 100644 index 00000000..08bea4bd --- /dev/null +++ b/docker/dev/setup.txt @@ -0,0 +1,19 @@ +Docker local development setup. + +1. Go to diagrams project directory. + +2. Build the docker image: +docker build --tag diagrams:1.0 -f ./docker/dev/Dockerfile . + +3. Run the container in background and mount the project source: +docker run -d \ +-it \ +--name diagrams \ +--mount type=bind,source="$(pwd)",target=/usr/src/diagrams \ +diagrams:1.0 + +4. Run unit tests in the host using the container: +docker exec diagrams python -m unittest tests/*.py -v + +5. Run autogen.sh: +docker exec diagrams ./autogen.sh