diff --git a/.gitignore b/.gitignore index 8b56006..844016f 100644 --- a/.gitignore +++ b/.gitignore @@ -42,4 +42,5 @@ Desktop.ini _build/ *.sqlite3 .idea/ -.vagrant/ \ No newline at end of file +.vagrant/ +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..42c1fc2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,51 @@ +ARG DEBIAN_RELEASE=buster +FROM debian:$DEBIAN_RELEASE +LABEL maintainer="Jan Dittberner " + +ENV LC_ALL=C.UTF-8 +ENV LANG=C.UTF-8 + +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + build-essential \ + dumb-init \ + gettext \ + git \ + python3-dev \ + python3-pip \ + python3-setuptools \ + python3-virtualenv \ + python3-wheel \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/*.* + +RUN python3 -m pip install --prefix=/usr/local pipenv + +RUN apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + libmariadb-dev-compat \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/*.* + +ARG GVAGID=2000 +ARG GVAUID=2000 + +ARG GVAAPP=gvamysql + +WORKDIR /srv/$GVAAPP + +COPY Pipfile Pipfile.lock /srv/$GVAAPP/ + +RUN addgroup --gid $GVAGID $GVAAPP ; \ + adduser --home /home/$GVAAPP --shell /bin/bash --uid $GVAUID --gid $GVAGID --disabled-password --gecos "User for gnuviechadmin component $GVAAPP" $GVAAPP + +USER $GVAAPP +RUN python3 -m virtualenv --python=python3 /home/$GVAAPP/$GVAAPP-venv ; \ + /home/$GVAAPP/$GVAAPP-venv/bin/python3 -m pip install -U pip ; \ + VIRTUAL_ENV=/home/$GVAAPP/$GVAAPP-venv pipenv install --deploy --ignore-pipfile --dev + +VOLUME /srv/$GVAAPP + +COPY gvamysql.sh /srv/ + +ENTRYPOINT ["dumb-init", "/srv/gvamysql.sh"] diff --git a/docs/changelog.rst b/docs/changelog.rst index 4e2a70d..1c2df48 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,7 @@ Changelog ========= +* :support:`-` add Docker setup for lightweight local testing * :support:`-` update Vagrant setup to libvirt and Debian Buster * :support:`-` move mysqltasks to top level to keep the task names when using Python 3 diff --git a/gvamysql.sh b/gvamysql.sh new file mode 100755 index 0000000..b775315 --- /dev/null +++ b/gvamysql.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +. /home/gvamysql/gvamysql-venv/bin/activate +cd /srv/gvamysql/gvamysql +celery -A mysqltasks worker -Q mysql -l info