diff --git a/.gitignore b/.gitignore index e8bac47aa..83de47a86 100644 --- a/.gitignore +++ b/.gitignore @@ -92,5 +92,4 @@ collected_static bower bower_components media -whoosh/ -postgres-data/ +whoosh/ \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 0e0a27ad4..bf5ee38fd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,3 @@ script: - ./manage.py bower install - py.test --create-db # - ./test_and_check_qa.sh - -addons: - hosts: - - 127.0.0.1 sapldb diff --git a/Dockerfile b/Dockerfile index a7bf01657..9880dc4ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,53 @@ -FROM alpine:3.5 +FROM ubuntu:15.04 -ENV BUILD_PACKAGES postgresql-dev graphviz-dev graphviz build-base git pkgconfig \ -python3-dev libxml2-dev jpeg-dev libressl-dev libffi-dev libxslt-dev nodejs py3-lxml \ -py3-magic postgresql-client +RUN locale-gen en_US.UTF-8 +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL en_US.UTF-8 -RUN apk add --no-cache python3 && \ - python3 -m ensurepip && \ - rm -r /usr/lib/python*/ensurepip && \ - pip3 install --upgrade pip setuptools && \ - rm -r /root/.cache +RUN mkdir /sapl -RUN mkdir /sapl && apk add --update --no-cache $BUILD_PACKAGES && npm install -g bower +RUN echo "deb http://archive.ubuntu.com/ubuntu/ vivid universe" | tee -a "/etc/apt/sources.list" + +RUN \ + apt-get update && \ + apt-get install -y -f \ + software-properties-common \ + libpq-dev \ + graphviz-dev \ + graphviz \ + build-essential \ + git \ + pkg-config \ + python3-dev \ + libxml2-dev \ + libjpeg-dev \ + libssl-dev \ + libffi-dev \ + libxslt1-dev \ + python3-setuptools \ + curl + +# use python3 in pip +RUN easy_install3 pip lxml + +# install nodejs +RUN DEBIAN_FRONTEND=noninteractive curl -sL https://deb.nodesource.com/setup_5.x | bash - +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y nodejs + +# install bower +RUN npm install -g bower # Bower aceitar root -RUN touch /root/.bowerrc \ -&& chmod 751 /root/.bowerrc \ -&& echo "{ \"allow_root\": true }" >> /root/.bowerrc \ -&& npm cache clean +RUN touch /root/.bowerrc +RUN chmod 751 /root/.bowerrc +RUN echo "{ \"allow_root\": true }" >> /root/.bowerrc WORKDIR /sapl ADD . /sapl -RUN pip install -r requirements/dev-requirements.txt --upgrade setuptools --no-cache-dir \ -&& python3 manage.py bower install +RUN pip install -r requirements/dev-requirements.txt +RUN pip install --upgrade setuptools + +# RUN python3 manage.py bower install diff --git a/busy-wait.sh b/busy-wait.sh deleted file mode 100644 index 128592ffc..000000000 --- a/busy-wait.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -while true; do - COUNT_PG=`psql --dbname=postgresql://sapl:sapl@sapldb/sapl -c '\l \q' | grep sapl | wc -l` - if ! [ "$COUNT_PG" -eq "0" ]; then - break - fi - echo "Esperando Database Setup" - sleep 10 -done diff --git a/config/nginx/sapl.conf b/config/nginx/sapl.conf deleted file mode 100644 index 513188ed9..000000000 --- a/config/nginx/sapl.conf +++ /dev/null @@ -1,39 +0,0 @@ -upstream sapl_server { - - server unix:/sapl/run/gunicorn.sock fail_timeout=0; - -} - -server { - - listen 80; - server_name sapl.test; - - client_max_body_size 4G; - - location /static/ { - alias /sapl/collected_static/; - } - - location /media/ { - alias /sapl/media/; - } - - location / { - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - - proxy_set_header Host $http_host; - - proxy_redirect off; - - - if (!-f $request_filename) { - proxy_pass http://sapl_server; - break; - } - } - error_page 500 502 503 504 /500.html; - location = /500.html { - root /sapl/sapl/static/; - } -} diff --git a/docker-compose.yml b/docker-compose.yml index 74d345791..8de57e3aa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,22 +1,9 @@ -server: - image: nginx:latest - ports: - - "80:80" - volumes: - - ./config/nginx:/etc/nginx/conf.d - volumes_from: - - web - links: - - web -sapldb: +localhost: image: postgres environment: POSTGRES_PASSWORD: sapl POSTGRES_USER: sapl POSTGRES_DB: sapl - PGDATA : /var/lib/postgresql/data/ - volumes: - - ./postgres-data/data/:/var/lib/postgresql/data/ ports: - "5532:5432" web: @@ -24,5 +11,7 @@ web: command: /bin/sh -c "/bin/sh busy-wait.sh && python3 manage.py bower install && python3 manage.py migrate && /bin/sh gunicorn_start.sh /sapl" volumes: - .:/sapl + ports: + - "8000:8000" links: - - sapldb + - localhost diff --git a/gunicorn_start.sh b/gunicorn_start.sh index 437a15168..34147cb97 100755 --- a/gunicorn_start.sh +++ b/gunicorn_start.sh @@ -12,17 +12,23 @@ then fi NAME="SAPL" # Name of the application (*) -DJANGODIR=$SAPL_DIR # Django project directory (*) -SOCKFILE="$SAPL_DIR/gunicorn.sock" # we will communicate using this unix socket (*) +DJANGODIR=/var/interlegis/sapl # Django project directory (*) +SOCKFILE=/var/interlegis/sapl/run/gunicorn.sock # we will communicate using this unix socket (*) USER=`whoami` # the user to run as (*) GROUP=`whoami` # the group to run as (*) -NUM_WORKERS=3 # how many worker processes should Gunicorn spawn (*) +NUM_WORKERS=9 # how many worker processes should Gunicorn spawn (*) # NUM_WORKERS = 2 * CPUS + 1 DJANGO_SETTINGS_MODULE=sapl.settings # which settings file should Django use (*) DJANGO_WSGI_MODULE=sapl.wsgi # WSGI module name (*) echo "Starting $NAME as `whoami` on base dir $SAPL_DIR" +# Activate the virtual environment +cd $DJANGODIR +source /var/interlegis/.virtualenvs/sapl/bin/activate +export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE +export PYTHONPATH=$DJANGODIR:$PYTHONPATH + # Create the run directory if it doesn't exist RUNDIR=$(dirname $SOCKFILE) test -d $RUNDIR || mkdir -p $RUNDIR diff --git a/sapl/.env_test b/sapl/.env_test index 9416d402d..5c2c60ec1 100644 --- a/sapl/.env_test +++ b/sapl/.env_test @@ -1,4 +1,4 @@ -DATABASE_URL = postgresql://postgres:@sapldb:/sapl +DATABASE_URL = postgresql://postgres:@localhost:/sapl SECRET_KEY=TravisTest DEBUG=False EMAIL_USE_TLS = True diff --git a/scripts_docker/shell_sapl.sh b/scripts_docker/shell_sapl.sh index 4c993a61d..cfddefcdc 100755 --- a/scripts_docker/shell_sapl.sh +++ b/scripts_docker/shell_sapl.sh @@ -1,3 +1,2 @@ #!/bin/bash - -docker run --rm -ti sapl_web /bin/sh +docker run -ti sapl_web /bin/bash