All of lore.kernel.org
 help / color / mirror / Atom feed
* [pathchwork][PATCH] patchwork: Add a dockerfile for deploy patchwork and patchtest
@ 2018-12-29  5:44 changqing.li
  2019-01-16  5:37 ` [PATCH V2] " changqing.li
  0 siblings, 1 reply; 7+ messages in thread
From: changqing.li @ 2018-12-29  5:44 UTC (permalink / raw)
  To: yocto

From: Changqing Li <changqing.li@windriver.com>

Add a dockerfile for easy deploy patchwork and patchtest in
docker

Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
 Dockerfile.pw                 | 52 +++++++++++++++++++++++++++++++++++++++++++
 README.pw                     | 32 ++++++++++++++++++++++++++
 requirements.txt              | 12 ++++++++++
 scripts/pw_createsuperuser.sh |  5 +++++
 scripts/pw_getmail.sh         |  8 +++++++
 scripts/pw_migrate.sh         |  5 +++++
 scripts/pw_runwebserver.sh    | 12 ++++++++++
 7 files changed, 126 insertions(+)
 create mode 100644 Dockerfile.pw
 create mode 100644 README.pw
 create mode 100644 requirements.txt
 create mode 100755 scripts/pw_createsuperuser.sh
 create mode 100755 scripts/pw_getmail.sh
 create mode 100755 scripts/pw_migrate.sh
 create mode 100755 scripts/pw_runwebserver.sh

diff --git a/Dockerfile.pw b/Dockerfile.pw
new file mode 100644
index 0000000..ae3c1ee
--- /dev/null
+++ b/Dockerfile.pw
@@ -0,0 +1,52 @@
+FROM ubuntu:latest
+MAINTAINER owner <own@mail.com>
+
+EXPOSE 8080
+
+ENV PYTHONUNBUFFERED=1 \
+    LANG=en_US.UTF-8 \
+    LC_ALL=en_US.UTF-8 \
+    LC_CTYPE=en_US.UTF-8 \
+    PATH="$PATH:/opt/patchwork/git-pw:/opt/patchtest:/opt/patchtest/scripts"
+
+RUN  apt-get update \
+        && apt-get dist-upgrade -y \
+        && apt-get install -y --no-install-recommends \
+        autoconf \
+        gcc \
+        g++ \
+        make \
+        locales \
+        wget \
+        curl \
+        cron \
+        python-pip \
+        python-dev \
+        python-setuptools \
+        python3-pip \
+        python3-dev \
+        libmysqlclient-dev \
+        git-core \
+        getmail4 \
+        && sh -c "echo \"en_US.UTF-8 UTF-8\" >> /etc/locale.gen" \
+        && locale-gen en_US.UTF-8 \
+        && update-locale \
+        && pip2 install wheel \
+        && pip3 install wheel \
+        && pip3 install setuptools \
+        && apt-get autoremove --purge -y \
+        && rm -rf /var/lib/apt/lists/* \
+        && apt-get clean
+ADD ./patchwork /opt/patchwork
+ADD ./patchtest /opt/patchtest
+ADD ./patchtest-oe /opt/patchtest-oe
+ADD ./getmailrc /opt/getmail/getmailrc
+RUN  pip2 install -r /opt/patchwork/requirements.txt \ 
+    && pip3 install -r /opt/patchtest/requirements.txt \
+    && pip3 install  -r /opt/patchtest-oe/requirements.txt \
+    && mkdir -p /opt/getmail \
+    && mkdir -p /opt/pw-logs \
+    && git config --global user.email "patchtest@patchtest.com" \
+    && git config --global user.name "patchtest" \
+    && /opt/patchtest/scripts/create-host-test-folder -t /opt/pw-test \
+    && /opt/patchtest/scripts/create-host-crontab -c /opt/pw-test-cron 
diff --git a/README.pw b/README.pw
new file mode 100644
index 0000000..ffa7af1
--- /dev/null
+++ b/README.pw
@@ -0,0 +1,32 @@
+* Dockerfile.pw deploy patchwork, patchtest, patchtest-oe in docker
+
+* Dockerfile.pw is just an example, you can adjust according to your
+  deploy condition, like not use getmail, but use postfix.
+
+* requirements.txt,  just for refer, you can also rewrite this 
+  according to patchwork'doc and accoridng to your deploy condition.
+
+* scripts folder hold the files will be used during deploy with docker.
+
+* Deploy steps:
+
+1. Clone patchwork, patchtest, patchtest-oe first, also put getmailrc used by
+   Dockerfile.pw under the same folder.
+
+2. Build docker image with Dockerfile.pw
+$docker build -t pw -f ./patchwork/Dockerfile.pw .
+
+3. use mariadb as dataserver:
+$ docker pull mariadb
+$ docker run -d --name pw-db -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=pwdb -v /pw/pwdb:/var/lib/mysql mariadb
+
+5. run web server
+docker run -d --name pw-web --link pw-db:pw-db -p 8080:8080 pw "/opt/patchwork/scripts/pw_runwebserver.sh"
+
+6. config pw
+docker exec -it pw-web /opt/patchwork/scripts/pw_migrate.sh
+docker exec -it pw-web /opt/patchwork/scripts/pw_createsuperuser.sh
+
+7. run patchwork
+docker run -d --name pw-mail --link pw-db:pw-db pw "/opt/patchwork/scripts/pw_getmail.sh"
+
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..b8f68f2
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,12 @@
+django==1.8.0
+sqlparse==0.2.4
+celery==3.1.20
+django_filter==0.11.0
+djangorestframework==2.4.8
+drf-nested-routers==0.11.1
+psycopg2>=2.7,<2.8
+mysqlclient
+jsonfield
+enum34
+GitPython
+requests
diff --git a/scripts/pw_createsuperuser.sh b/scripts/pw_createsuperuser.sh
new file mode 100755
index 0000000..324ce72
--- /dev/null
+++ b/scripts/pw_createsuperuser.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+pw_dir='/opt/patchwork'
+
+(cd $pw_dir; ./manage.py createsuperuser)
diff --git a/scripts/pw_getmail.sh b/scripts/pw_getmail.sh
new file mode 100755
index 0000000..eff5c0e
--- /dev/null
+++ b/scripts/pw_getmail.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+while true
+do
+	getmail --getmaildir=/opt/getmail/ --idle INBOX
+        sleep 1
+done
+
diff --git a/scripts/pw_migrate.sh b/scripts/pw_migrate.sh
new file mode 100755
index 0000000..e54b2f4
--- /dev/null
+++ b/scripts/pw_migrate.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+pw_dir="/opt/patchwork"
+
+(cd $pw_dir; ./manage.py migrate; ./manage.py collectstatic; ./manage.py loaddata default_tags default_states default_events)
diff --git a/scripts/pw_runwebserver.sh b/scripts/pw_runwebserver.sh
new file mode 100755
index 0000000..4233b1a
--- /dev/null
+++ b/scripts/pw_runwebserver.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+export LANG="en_US.UTF-8"
+export LC_ALL="en_US.UTF-8"
+
+#open crontab to do test
+/etc/init.d/cron start
+crontab -u pwtest /opt/pw-test-cron/crontab
+
+pw_dir="/opt/patchwork"
+
+(cd $pw_dir; ./manage.py runserver 0.0.0.0:8080)
-- 
2.7.4



^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-02-11  1:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-29  5:44 [pathchwork][PATCH] patchwork: Add a dockerfile for deploy patchwork and patchtest changqing.li
2019-01-16  5:37 ` [PATCH V2] " changqing.li
2019-01-16  5:37   ` changqing.li
2019-01-29  1:30     ` Randy MacLeod
2019-02-09 18:43       ` Jose Lamego
2019-02-11  1:17         ` Changqing Li
2019-02-11  1:36           ` Paul Eggleton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.