From: "Sebastian Pipping" <sping@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: /
Date: Sun, 9 Feb 2020 21:25:09 +0000 (UTC) [thread overview]
Message-ID: <1581283494.f3cfe82d587d5efa73b828a1f69e3fa0136bdc1d.sping@gentoo> (raw)
commit: f3cfe82d587d5efa73b828a1f69e3fa0136bdc1d
Author: Sebastian Pipping <sping <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 8 18:40:50 2020 +0000
Commit: Sebastian Pipping <sping <AT> gentoo <DOT> org>
CommitDate: Sun Feb 9 21:24:54 2020 +0000
URL: https://gitweb.gentoo.org/proj/euscan.git/commit/?id=f3cfe82d
docker: Dockerize euscanwww (W.I.P.)
Signed-off-by: Sebastian Pipping <sping <AT> gentoo.org>
Dockerfile | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++
docker-compose.yml | 33 +++++++++++++++++++++++++
docker-entrypoint.sh | 24 ++++++++++++++++++
requirements.txt | 42 +++++++++++++++++++++++++++++++
4 files changed, 169 insertions(+)
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..c8e088d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,70 @@
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+FROM gentoo/stage3-amd64:20200208
+
+RUN wget https://gentoo.osuosl.org/snapshots/gentoo-latest.tar.xz \
+ && \
+ tar -C /var/db/repos/ -x -p -f gentoo-latest.tar.xz \
+ && \
+ mv /var/db/repos/gentoo-20??????/ /var/db/repos/gentoo/ \
+ && \
+ rm gentoo-latest.tar.xz
+
+RUN emaint sync --repo gentoo
+
+RUN eselect profile show \
+ && \
+ echo 'net-analyzer/rrdtool python' > /etc/portage/package.use/net-analyzer--rrdtool \
+ && \
+ echo 'dev-lang/python:2.7 sqlite tk' > /etc/portage/package.use/dev-lang--python \
+ && \
+ echo 'PYTHON_TARGETS="${PYTHON_TARGETS} python2_7"' >> /etc/portage/make.conf \
+ && \
+ echo 'PYTHON_SINGLE_TARGET="python2_7"' >> /etc/portage/make.conf \
+ && \
+ echo 'USE="${USE} bindist -syslog"' >> /etc/portage/make.conf
+
+# NOTE: First build dependencies, then runtime-only dependencies
+RUN emerge --tree -v -j2 --color y -1uU \
+ dev-lang/python:2.7 \
+ dev-libs/cyrus-sasl \
+ dev-python/pip \
+ dev-python/setuptools \
+ dev-python/wheel \
+ net-nds/openldap \
+ \
+ app-portage/eix \
+ app-portage/gentoolkit \
+ app-portage/layman \
+ net-analyzer/rrdtool \
+ sys-apps/portage \
+ && \
+ rm -f /var/cache/distfiles/*
+
+ENV PATH=/root/.local/bin/:${PATH}
+COPY requirements.txt /tmp/euscan/
+RUN pip2 install --user -r /tmp/euscan/requirements.txt
+
+COPY setup.py README.rst /tmp/euscan/
+COPY bin/ /tmp/euscan/bin/
+COPY pym/ /tmp/euscan/pym/
+COPY euscanwww/djeuscan/ /tmp/euscan/pym/djeuscan/
+COPY euscanwww/euscan_accounts/ /tmp/euscan/pym/euscan_accounts/
+COPY euscanwww/euscan_captcha/ /tmp/euscan/pym/euscan_captcha/
+COPY euscanwww/euscanwww/ /tmp/euscan/pym/euscanwww/
+
+COPY docker-entrypoint.sh /root/
+
+WORKDIR /tmp/euscan/
+
+RUN pip2 install --user .
+
+RUN pip2 check
+RUN bash -c 'diff -U0 <(pip2 freeze --user | sed "/^\(euscan\|virtualenv\)==/d" | sort -f) <(sed -e "s/ *#.*//" -e "/^$/d" /tmp/euscan/requirements.txt | sort -f)'
+
+RUN rm -Rf /tmp/euscan/
+
+EXPOSE 55080
+ENTRYPOINT ["/root/docker-entrypoint.sh"]
+CMD []
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..5bcec2f
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,33 @@
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+version: "3"
+
+services:
+ runserver:
+ depends_on:
+ - celeryd
+ image: ${COMPOSE_PROJECT_NAME}_celeryd:latest
+ environment:
+ DJANGO_SETTINGS_MODULE: euscanwww.settings
+ EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+ tty: true
+
+ celerycam:
+ depends_on:
+ - celeryd
+ image: ${COMPOSE_PROJECT_NAME}_celeryd:latest
+ environment:
+ DJANGO_SETTINGS_MODULE: euscanwww.settings
+ EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+ command: django-admin celerycam
+ tty: true
+
+ celeryd:
+ build:
+ context: .
+ environment:
+ DJANGO_SETTINGS_MODULE: euscanwww.settings
+ EUSCAN_SECRET_KEY: ${EUSCAN_SECRET_KEY:?}
+ command: django-admin celeryd -B -E -l INFO
+ tty: true
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
new file mode 100755
index 0000000..508d265
--- /dev/null
+++ b/docker-entrypoint.sh
@@ -0,0 +1,24 @@
+#! /usr/bin/env bash
+# Copyright 2020 Gentoo Authors
+# Licensed under the GNU General Public License v2
+
+set -e
+set -u
+
+PS4='# '
+set -x
+
+id
+ip addr
+
+manage_py() {
+ django-admin "$@"
+}
+
+if [[ $# -gt 0 ]]; then
+ exec "$@"
+fi
+
+manage_py migrate
+
+exec manage_py runserver 0.0.0.0:55080
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..8bfe7f6
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,42 @@
+# Direct dependencies (testing)
+factory-boy==1.1.3
+
+# Direct dependencies (command line utility)
+BeautifulSoup==3.2.1
+
+# Direct dependencies (web interface)
+ansi2html==0.9.1
+Django==1.8
+django-annoying==0.7.6
+django-auth-ldap==1.1
+django-celery==3.3.1
+django-piston==0.2.3
+django-recaptcha==0.0.4
+django-registration==2.4.1
+matplotlib==2.2.5
+python-ldap==2.4.10
+South==0.7
+
+# Indirect dependencies
+anyjson==0.3.3
+amqp==1.4.9 # <2.0 due to kombu 3.0.37
+backports.functools-lru-cache==1.6.1
+billiard==3.3.0.23 # <3.4 due to celery==3.1.25
+celery==3.1.25 # >=4 does not have celery.utils.timeutils
+configparser==4.0.2
+confusable-homoglyphs==3.2.0
+contextlib2==0.6.0.post1
+cycler==0.10.0
+importlib-metadata==1.5.0
+kiwisolver==1.1.0
+kombu==3.0.37 # <3.1 due to celery==3.1.25
+numpy==1.16.6
+pathlib2==2.3.5
+pyparsing==2.4.6
+python-dateutil==2.8.1
+pytz==2019.3
+scandir==1.10.0
+six==1.14.0
+subprocess32==3.5.4
+vine==1.3.0
+zipp==1.1.0
next reply other threads:[~2020-02-09 21:25 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-09 21:25 Sebastian Pipping [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-02-09 23:16 [gentoo-commits] proj/euscan:docker-compose--wip--expect-force-pushes commit in: / Sebastian Pipping
2020-02-09 23:16 Sebastian Pipping
2020-02-09 18:14 Sebastian Pipping
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1581283494.f3cfe82d587d5efa73b828a1f69e3fa0136bdc1d.sping@gentoo \
--to=sping@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox