aboutsummaryrefslogtreecommitdiffstats
path: root/patchwork
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-05-13 22:55:25 +0200
committerHarald Welte <laforge@gnumonks.org>2018-05-13 23:50:51 +0200
commit934c181542690ec9053a5a3fb08dd4ac2605051f (patch)
tree7b3424560df60e2668faaa115a90834a9f486642 /patchwork
parentaa1ccdabb70427df437f83d88dcbbcff4fa73f88 (diff)
dockerfile for patchwork patch tracking software
Diffstat (limited to 'patchwork')
l---------patchwork/Dockerfile1
-rw-r--r--patchwork/Dockerfile.fdo47
-rw-r--r--patchwork/Dockerfile.upstream42
-rwxr-xr-xpatchwork/docker-entrypoint.sh10
-rw-r--r--patchwork/production.py82
5 files changed, 182 insertions, 0 deletions
diff --git a/patchwork/Dockerfile b/patchwork/Dockerfile
new file mode 120000
index 0000000..dc5eff5
--- /dev/null
+++ b/patchwork/Dockerfile
@@ -0,0 +1 @@
+Dockerfile.fdo \ No newline at end of file
diff --git a/patchwork/Dockerfile.fdo b/patchwork/Dockerfile.fdo
new file mode 100644
index 0000000..228ee8c
--- /dev/null
+++ b/patchwork/Dockerfile.fdo
@@ -0,0 +1,47 @@
+FROM debian
+
+# freedesktop.org version of patchwork
+
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ ca-certificates \
+ git \
+ libjs-jquery \
+ python3 \
+ python3-celery \
+ python3-django \
+ python3-django-jsonfield \
+ python3-django-filters \
+ python3-djangorestframework \
+ python3-mysqldb \
+ python3-pip \
+ python3-psycopg2 \
+ python3-sqlparse \
+ wget && \
+ apt-get clean
+
+RUN pip3 install drf-nested-routers
+
+WORKDIR /opt
+
+ARG VERSION_TAG=2.0.1
+
+#RUN wget https://github.com/getpatchwork/patchwork/archive/v$VERSION_TAG.tar.gz && \
+ #tar xzf v$VERSION_TAG.tar.gz && \
+ #mv patchwork-$VERSION_TAG patchwork && \
+ #rm v$VERSION_TAG.tar.gz
+
+RUN git clone https://github.com/dlespiau/patchwork
+
+WORKDIR /opt/patchwork
+
+COPY production.py patchwork/settings/production.py
+COPY docker-entrypoint.sh /docker-entrypoint.sh
+
+RUN mkdir -p /var/www/patchwork
+VOLUME /var/www/patchwork
+
+#RUN DJANGO_SECRET_KEY=foo python3 manage.py collectstatic
+
+CMD /docker-entrypoint.sh
diff --git a/patchwork/Dockerfile.upstream b/patchwork/Dockerfile.upstream
new file mode 100644
index 0000000..30dff82
--- /dev/null
+++ b/patchwork/Dockerfile.upstream
@@ -0,0 +1,42 @@
+FROM debian
+
+# upstream version of patchwork
+
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ ca-certificates \
+ git \
+ libjs-jquery \
+ python3 \
+ python3-celery \
+ python3-django \
+ python3-django-filters \
+ python3-djangorestframework \
+ python3-mysqldb \
+ python3-psycopg2 \
+ python3-sqlparse \
+ wget && \
+ apt-get clean
+
+
+WORKDIR /opt
+
+ARG VERSION_TAG=2.0.1
+
+RUN wget https://github.com/getpatchwork/patchwork/archive/v$VERSION_TAG.tar.gz && \
+ tar xzf v$VERSION_TAG.tar.gz && \
+ mv patchwork-$VERSION_TAG patchwork && \
+ rm v$VERSION_TAG.tar.gz
+
+WORKDIR /opt/patchwork
+
+COPY production.py patchwork/settings/production.py
+COPY docker-entrypoint.sh /docker-entrypoint.sh
+
+RUN mkdir -p /var/www/patchwork
+VOLUME /var/www/patchwork
+
+#RUN DJANGO_SECRET_KEY=foo python3 manage.py collectstatic
+
+CMD /docker-entrypoint.sh
diff --git a/patchwork/docker-entrypoint.sh b/patchwork/docker-entrypoint.sh
new file mode 100755
index 0000000..63ba941
--- /dev/null
+++ b/patchwork/docker-entrypoint.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+set -x
+
+python3 manage.py check
+python3 manage.py migrate
+python3 manage.py collectstatic --noinput
+python3 manage.py loaddata default_tags default_states
+python3 manage.py runserver 0.0.0.0:8000
diff --git a/patchwork/production.py b/patchwork/production.py
new file mode 100644
index 0000000..587c39a
--- /dev/null
+++ b/patchwork/production.py
@@ -0,0 +1,82 @@
+"""
+Sample production-ready settings for patchwork project.
+
+Most of these are commented out as they will be installation dependent.
+
+Design based on:
+ http://www.revsys.com/blog/2014/nov/21/recommended-django-project-layout/
+"""
+
+from __future__ import absolute_import
+
+import os
+
+import django
+
+from .base import * # noqa
+
+#
+# Core settings
+# https://docs.djangoproject.com/en/1.8/ref/settings/#core-settings
+#
+
+# Security
+#
+# You'll need to replace this to a random string. The following python code can
+# be used to generate a secret key:
+#
+# import string, random
+# chars = string.letters + string.digits + string.punctuation
+# print repr("".join([random.choice(chars) for i in range(0,50)]))
+
+SECRET_KEY = os.environ['DJANGO_SECRET_KEY']
+
+# Email
+#
+# Replace this with your own details
+
+EMAIL_HOST = os.getenv('EMAIL_HOST', 'localhost')
+EMAIL_PORT = os.getenv('EMAIL_PORT', 25)
+EMAIL_HOST_USER = os.getenv('EMAIL_HOST_USER', '')
+EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD', '')
+EMAIL_USE_TLS = True
+
+DEFAULT_FROM_EMAIL = 'Patchwork <patchwork@lists.osmocom.org>'
+SERVER_EMAIL = DEFAULT_FROM_EMAIL
+NOTIFICATION_FROM_EMAIL = DEFAULT_FROM_EMAIL
+
+ADMINS = (
+ ('Holger Freyther', 'holger@freyther.de'),
+ ('Holger Freyther', 'holger+p@freyther.de'),
+)
+
+# Database
+#
+# If you're using a postgres database, connecting over a local unix-domain
+# socket, then the following setting should work for you. Otherwise,
+# see https://docs.djangoproject.com/en/1.8/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.mysql',
+ 'NAME': os.environ.get('DATABASE_NAME', ''),
+ 'USER': os.environ.get('DATABASE_USER', ''),
+ 'PASSWORD': os.environ.get('DATABASE_PASSWORD', ''),
+ 'HOST': os.environ.get('DATABASE_HOST', ''),
+ 'PORT': os.environ.get('DATABASE_PORT', ''),
+ },
+}
+
+#
+# Static files settings
+# https://docs.djangoproject.com/en/1.8/ref/settings/#static-files
+# https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/#manifeststaticfilesstorage
+#
+
+STATIC_ROOT = os.environ.get('STATIC_ROOT', '/var/www/patchwork')
+
+if django.VERSION >= (1, 7):
+ STATICFILES_STORAGE = \
+ 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
+
+ALLOWED_HOSTS = ['*']