Re: [yocto] [PATCH V2] patchwork: Add a dockerfile for deploy patchwork and patchtest
Hi Randy, Sorry for the late response. I'm no longer involved with the Yocto Project. Last word I heard was that point of contact for Patchwork- related work was Paul Eggleton. Hope this helps. Jose On Mon, 2019-01-28 at 20:30 -0500, Randy MacLeod wrote: > On 1/16/19 12:37 AM, changqing...@windriver.com wrote: > > From: Changqing Li > > Ping? > > Jose, are you maintaining this repo? >http://git.yoctoproject.org/cgit/cgit.cgi/patchwork/about/ > You were the committer for most of the recent work. > > ../Randy > > Add a dockerfile for easy deploy patchwork and patchtest in > > docker > > > > Signed-off-by: Changqing Li > > --- > > Dockerfile.pw | 52 > > +++ > > README.pw | 32 ++ > > requirements.txt | 12 ++ > > scripts/pw_createsuperuser.sh | 5 + > > scripts/pw_getmail.sh | 11 + > > scripts/pw_migrate.sh | 5 + > > scripts/pw_runwebserver.sh| 12 ++ > > 7 files changed, 129 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 000..ae3c1ee > > --- /dev/null > > +++ b/Dockerfile.pw > > @@ -0,0 +1,52 @@ > > +FROM ubuntu:latest > > +MAINTAINER owner > > + > > +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 "patcht...@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 000..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" > > +
Re: [yocto] [PATCH V2] patchwork: Add a dockerfile for deploy patchwork and patchtest
Not actively, no. I will try to take a look at your patch this week though. Cheers, Paul On Monday, 11 February 2019 2:17:16 PM NZDT Changqing Li wrote: > Hi, Paul > > Are you maintaining this repo? > > On 2/10/19 2:43 AM, Jose Lamego wrote: > > Hi Randy, > > > > Sorry for the late response. I'm no longer involved with the Yocto > > Project. Last word I heard was that point of contact for Patchwork- > > related work was Paul Eggleton. > > > > Hope this helps. > > > > Jose > Thanks. > > > > On Mon, 2019-01-28 at 20:30 -0500, Randy MacLeod wrote: > >> On 1/16/19 12:37 AM, changqing...@windriver.com wrote: > >>> From: Changqing Li > >> Ping? > >> > >> Jose, are you maintaining this repo? > >> http://git.yoctoproject.org/cgit/cgit.cgi/patchwork/about/ > >> You were the committer for most of the recent work. > >> > >> ../Randy > >>> Add a dockerfile for easy deploy patchwork and patchtest in > >>> docker > >>> > >>> Signed-off-by: Changqing Li > >>> --- > >>>Dockerfile.pw | 52 > >>> +++ > >>>README.pw | 32 ++ > >>>requirements.txt | 12 ++ > >>>scripts/pw_createsuperuser.sh | 5 + > >>>scripts/pw_getmail.sh | 11 + > >>>scripts/pw_migrate.sh | 5 + > >>>scripts/pw_runwebserver.sh| 12 ++ > >>>7 files changed, 129 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 000..ae3c1ee > >>> --- /dev/null > >>> +++ b/Dockerfile.pw > >>> @@ -0,0 +1,52 @@ > >>> +FROM ubuntu:latest > >>> +MAINTAINER owner > >>> + > >>> +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 "patcht...@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 000..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 > >>> +$ d
Re: [yocto] [PATCH V2] patchwork: Add a dockerfile for deploy patchwork and patchtest
Hi, Paul Are you maintaining this repo? On 2/10/19 2:43 AM, Jose Lamego wrote: Hi Randy, Sorry for the late response. I'm no longer involved with the Yocto Project. Last word I heard was that point of contact for Patchwork- related work was Paul Eggleton. Hope this helps. Jose Thanks. On Mon, 2019-01-28 at 20:30 -0500, Randy MacLeod wrote: On 1/16/19 12:37 AM, changqing...@windriver.com wrote: From: Changqing Li Ping? Jose, are you maintaining this repo? http://git.yoctoproject.org/cgit/cgit.cgi/patchwork/about/ You were the committer for most of the recent work. ../Randy Add a dockerfile for easy deploy patchwork and patchtest in docker Signed-off-by: Changqing Li --- Dockerfile.pw | 52 +++ README.pw | 32 ++ requirements.txt | 12 ++ scripts/pw_createsuperuser.sh | 5 + scripts/pw_getmail.sh | 11 + scripts/pw_migrate.sh | 5 + scripts/pw_runwebserver.sh| 12 ++ 7 files changed, 129 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 000..ae3c1ee --- /dev/null +++ b/Dockerfile.pw @@ -0,0 +1,52 @@ +FROM ubuntu:latest +MAINTAINER owner + +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 "patcht...@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 000..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 000..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 fil
Re: [yocto] [PATCH V2] patchwork: Add a dockerfile for deploy patchwork and patchtest
On 1/16/19 12:37 AM, changqing...@windriver.com wrote: From: Changqing Li Ping? Jose, are you maintaining this repo? http://git.yoctoproject.org/cgit/cgit.cgi/patchwork/about/ You were the committer for most of the recent work. ../Randy Add a dockerfile for easy deploy patchwork and patchtest in docker Signed-off-by: Changqing Li --- Dockerfile.pw | 52 +++ README.pw | 32 ++ requirements.txt | 12 ++ scripts/pw_createsuperuser.sh | 5 + scripts/pw_getmail.sh | 11 + scripts/pw_migrate.sh | 5 + scripts/pw_runwebserver.sh| 12 ++ 7 files changed, 129 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 000..ae3c1ee --- /dev/null +++ b/Dockerfile.pw @@ -0,0 +1,52 @@ +FROM ubuntu:latest +MAINTAINER owner + +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 "patcht...@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 000..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 000..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 000..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 000..fadf7c9 --- /dev/null +++ b/scripts/pw_getmail.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +s
[yocto] [PATCH V2] patchwork: Add a dockerfile for deploy patchwork and patchtest
From: Changqing Li Add a dockerfile for easy deploy patchwork and patchtest in docker Signed-off-by: Changqing Li --- Dockerfile.pw | 52 +++ README.pw | 32 ++ requirements.txt | 12 ++ scripts/pw_createsuperuser.sh | 5 + scripts/pw_getmail.sh | 11 + scripts/pw_migrate.sh | 5 + scripts/pw_runwebserver.sh| 12 ++ 7 files changed, 129 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 000..ae3c1ee --- /dev/null +++ b/Dockerfile.pw @@ -0,0 +1,52 @@ +FROM ubuntu:latest +MAINTAINER owner + +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 "patcht...@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 000..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 000..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 000..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 000..fadf7c9 --- /dev/null +++ b/scripts/pw_getmail.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +sudo /etc/init.d/cron start +echo "*/5 * * * * sudo getmail --getmaildir=/opt/getmail/ --idle INBOX >> /opt/pw-test-cron/getmail.log 2>&1" > /opt/pw-test-cron/cron-getmail +sudo crontab -u wrlbuild /opt/pw-test-cron/cron-getmail + +while
[yocto] [PATCH V2] patchwork: Add a dockerfile for deploy patchwork and patchtest
change in v2: run getmail in crontab Changqing Li (1): patchwork: Add a dockerfile for deploy patchwork and patchtest Dockerfile.pw | 52 +++ README.pw | 32 ++ requirements.txt | 12 ++ scripts/pw_createsuperuser.sh | 5 + scripts/pw_getmail.sh | 11 + scripts/pw_migrate.sh | 5 + scripts/pw_runwebserver.sh| 12 ++ 7 files changed, 129 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 -- 2.7.4 -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto