diff options
| -rw-r--r-- | Dockerfile | 37 | ||||
| -rw-r--r-- | boot.sh | 10 | ||||
| -rw-r--r-- | docker-compose.yml | 19 |
3 files changed, 66 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6b34919 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,37 @@ +FROM python:3.6-alpine + +RUN adduser -D annotatechange + +WORKDIR /home/annotatechange + +# See: https://stackoverflow.com/q/53835198/ +ARG YOUR_ENV +ENV YOUR_ENV=${YOUR_ENV} \ + PYTHONFAULTHANDLER=1 \ + PYTHONUNBUFFERED=1\ + PYTHONHASHSEED=random \ + PIP_NO_CACHE_DIR=off \ + PIP_DIABLE_PIP_VERSION_CHECK=on \ + PIP_DEFAULT_TIMEOUT=100 \ + POETRY_VERSION=0.12.11 + +RUN pip install "poetry==$POETRY_VERSION" + +COPY poetry.lock pyproject.toml /home/annotatechange + +RUN poetry config settings.virtualenvs.create false \ + && poetry install $(test "$YOUR_ENV" == production && echo "--no-dev") \ + --no-interaction --no-ansi + +COPY app app +COPY migrations migrations +COPY annotate_change.py config.py boot.sh ./ +RUN chmod +x boot.sh + +ENV FLASK_APP annotate_change.py + +RUN chown -R annotate_change:annotate_change ./ +USER annotate_change + +EXPOSE 5000 +ENTRYPOINT ["./boot.sh"] @@ -0,0 +1,10 @@ +#!/bin/sh + +# Activate the virtual environment +poetry shell + +# Run database migrations +flask db upgrade + +exec gunicorn -b :5000 --access-logfile - --error-logfile - annotate_change:app + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1fe447c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3' + +services: + annotatechange: + build: . + labels: + - "traefik.backend=annotatechange" + - "traefik.docker.network=web" + - "traefik.frontend.rule=Host:change.gertjanvandenburg.com" + - "traefik.port=80" + networks: + - web + volumes: + - ./persist/instance:/home/annotatechange/instance + - ./persist/mysql:/home/annotatechange/mysql + +networks: + web: + external: true |
