From b82201deedc531bdbc2e40a77b9090734f31e296 Mon Sep 17 00:00:00 2001 From: furion <_@furion.me> Date: Wed, 26 Apr 2017 01:04:12 +0200 Subject: [PATCH] fix #1, service boilerplate --- Dockerfile | 77 ++++++++++++++++++++++++++++++++++++++++++------ server/server.py | 6 ++++ service/web/run | 11 +++++++ 3 files changed, 85 insertions(+), 9 deletions(-) create mode 100644 server/server.py create mode 100644 service/web/run diff --git a/Dockerfile b/Dockerfile index bc8a2db61..0d1a8b4fd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,72 @@ -FROM python:3.5.3 -MAINTAINER furion <furion@steemit.com> +FROM phusion/baseimage:0.9.19 -COPY . /src -WORKDIR /src +#ENV MYSQL_URL mysql:// +ENV ENVIRONMENT DEV +ENV LOG_LEVEL INFO +ENV LANG en_US.UTF-8 +ENV LC_ALL en_US.UTF-8 +ENV APP_ROOT /app +ENV WSGI_APP ${APP_ROOT}/hive/server/serve.py +ENV HTTP_SERVER_PORT 8080 -RUN pip install ipython -#RUN pip install -r dev-requirements.txt -RUN pip install -e . +RUN \ + apt-get update && \ + apt-get install -y \ + build-essential \ + daemontools \ + git \ + libffi-dev \ + libmysqlclient-dev \ + libssl-dev \ + make \ + python3 \ + python3-dev \ + python3-pip \ + libxml2-dev \ + libxslt-dev \ + runit \ + nginx -EXPOSE 5000 -#CMD ["python", "app.py"] \ No newline at end of file +RUN \ + mkdir -p /var/lib/nginx/body && \ + mkdir -p /var/lib/nginx/scgi && \ + mkdir -p /var/lib/nginx/uwsgi && \ + mkdir -p /var/lib/nginx/fastcgi && \ + mkdir -p /var/lib/nginx/proxy && \ + chown -R www-data:www-data /var/lib/nginx && \ + mkdir -p /var/log/nginx && \ + touch /var/log/nginx/access.log && \ + touch /var/log/nginx/error.log && \ + chown www-data:www-data /var/log/nginx/*.log && \ + touch /var/run/nginx.pid && \ + chown www-data:www-data /var/run/nginx.pid + +ADD . /app + +RUN \ + mv /app/service/* /etc/service && \ + chmod +x /etc/service/*/run + +WORKDIR /app + +RUN \ + pip3 install --upgrade pip && \ + pip3 install pipenv && \ + pipenv lock && \ + pipenv install --three --dev && \ + apt-get remove -y \ + build-essential \ + libffi-dev \ + libssl-dev && \ + apt-get autoremove -y && \ + rm -rf \ + /root/.cache \ + /var/lib/apt/lists/* \ + /tmp/* \ + /var/tmp/* \ + /var/cache/* \ + /usr/include \ + /usr/local/include + +EXPOSE ${HTTP_SERVER_PORT} \ No newline at end of file diff --git a/server/server.py b/server/server.py new file mode 100644 index 000000000..09ad2b555 --- /dev/null +++ b/server/server.py @@ -0,0 +1,6 @@ +def create_app(): + pass + + +if __name__ == '__main__': + pass diff --git a/service/web/run b/service/web/run new file mode 100644 index 000000000..f7aed0c85 --- /dev/null +++ b/service/web/run @@ -0,0 +1,11 @@ +#!/bin/bash + + +exec setuidgid nobody uwsgi \ + --master \ + --http :"${HTTP_SERVER_PORT}" \ + --wsgi-file "${WSGI_APP}" \ + --processes "${HTTP_SERVER_PROCESSES:-8}" \ + --threads "${HTTP_SERVER_THREADS:-1}" \ + --stats 0.0.0.0:"${HTTP_SERVER_STATS_PORT}" \ + --stats-http \ No newline at end of file -- GitLab