public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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


             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