Skip to content

Commit

Permalink
deployment: invenio 3.1 and kubernets corrections
Browse files Browse the repository at this point in the history
* BETTER Update to invenio 3.1.
* BETTER Use of pipenv.
* DELETE Delete old deployment scripts (in separate git repository now).

Signed-off-by: Peter Weber <[email protected]>
Signed-off-by: Peter Weber <[email protected]>
  • Loading branch information
rerowep authored and jma committed May 23, 2019
1 parent db812c1 commit 04648ac
Show file tree
Hide file tree
Showing 28 changed files with 222 additions and 776 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ before_install:
- "nvm install 6; nvm use 6"
- "travis_retry pip install --upgrade setuptools py pipenv==2018.10.9"
- "travis_retry pip install twine wheel coveralls"
# patch default version of travis which is mark as unsave by pipenv check
- "travis_retry pip install --upgrade numpy"

install:
- "./scripts/bootstrap --ci"
Expand Down
50 changes: 16 additions & 34 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,61 +1,43 @@
# -*- coding: utf-8 -*-
#
# This file is part of RERO Ebooks.
# Copyright (C) 2018 RERO.
# This file is part of RERO ILS.
# Copyright (C) 2017 RERO.
#
# RERO Ebooks is free software; you can redistribute it
# RERO ILS is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# RERO Ebooks is distributed in the hope that it will be
# RERO ILS is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with RERO Ebooks; if not, write to the
# along with RERO ILS; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307, USA.
#
# In applying this license, RERO does not
# waive the privileges and immunities granted to it by virtue of its status
# as an Intergovernmental Organization or submit itself to any jurisdiction.

FROM python:3.5
ARG VERSION=latest
FROM rero/rero-ebooks-base:${VERSION}

RUN apt-get update -y && apt-get upgrade -y
RUN apt-get install -y git curl vim
RUN pip install --upgrade setuptools wheel pip uwsgi uwsgitop uwsgi-tools
USER 0

# Install Node
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs
RUN npm update

RUN python -m site
RUN python -m site --user-site

# Install Invenio
ENV WORKING_DIR=/opt/rero-ebooks
ENV INVENIO_INSTANCE_PATH=${WORKING_DIR}/var/instance

# copy everything inside /src
RUN mkdir -p ${WORKING_DIR}/src
COPY ./ ${WORKING_DIR}/src
WORKDIR ${WORKING_DIR}/src

# Install/create static files
RUN mkdir -p ${INVENIO_INSTANCE_PATH}
RUN ./scripts/bootstrap

# copy uwsgi config files
COPY ./docker/uwsgi/ ${INVENIO_INSTANCE_PATH}

# Set folder permissions
RUN chgrp -R 0 ${WORKING_DIR} && \
chmod -R g=u ${WORKING_DIR}
RUN chown -R invenio:invenio ${WORKING_DIR}

RUN useradd invenio --uid 1000 --gid 0 && \
chown -R invenio:root ${WORKING_DIR}
USER 1000

# workaround
RUN rm -rf /invenio/src/ui/admin/node_modules
RUN npm uninstall --prefix `pipenv --venv` --silent -g node-sass clean-css uglify-js requirejs

ENV INVENIO_COLLECT_STORAGE='flask_collect.storage.file'
RUN ./scripts/bootstrap --deploy
62 changes: 62 additions & 0 deletions Dockerfile.base
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
#
# This file is part of RERO ILS.
# Copyright (C) 2017 RERO.
#
# RERO ILS is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# RERO ILS is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with RERO ILS; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307, USA.
#
# In applying this license, RERO does not
# waive the privileges and immunities granted to it by virtue of its status
# as an Intergovernmental Organization or submit itself to any jurisdiction.

FROM python:3.6-slim-stretch

# require debian packages
RUN apt-get update -y && apt-get upgrade -y
RUN apt-get install --no-install-recommends -y git vim-tiny curl gcc gnupg libc6-dev && rm -rf /var/lib/apt/lists/*
RUN pip install --upgrade setuptools wheel pip pipenv

# # uwsgi uwsgitop uwsgi-tools

# Install Node
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install --no-install-recommends -y nodejs && rm -rf /var/lib/apt/lists/*
RUN npm install --silent [email protected] [email protected] [email protected] [email protected] @angular/[email protected]

# RUN npm update

# RUN python -m site
# RUN python -m site --user-site

# Install Invenio
ENV WORKING_DIR=/invenio
ENV INVENIO_INSTANCE_PATH=${WORKING_DIR}/var/instance
RUN mkdir -p ${INVENIO_INSTANCE_PATH}

# copy everything inside /src
RUN mkdir -p ${WORKING_DIR}/src
COPY ./ ${WORKING_DIR}/src
WORKDIR ${WORKING_DIR}/src

# copy uwsgi config files
COPY ./docker/uwsgi/ ${INVENIO_INSTANCE_PATH}

# create user
RUN useradd invenio --uid 1000 --home ${WORKING_DIR} && \
chown -R invenio:invenio ${WORKING_DIR} && \
chmod -R go+w ${WORKING_DIR}

USER 1000
3 changes: 1 addition & 2 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ include scripts/worker_beat
prune docs/_build
# recursive-include rero_ebooks *.po *.pot *.mo
recursive-include docker *.cfg *.conf *.crt *.ini *.key *.pem *.sh
include *.base

# added by check_manifest.py
include *.rst
Expand All @@ -55,7 +56,6 @@ include *.yml
include LICENSE
include babel.ini
include pytest.ini
include deployment/Dockerfile
recursive-include docs *.bat
recursive-include docs *.py
recursive-include docs *.rst
Expand All @@ -72,7 +72,6 @@ recursive-include data *.json
recursive-include rero_ebooks *.json

# added by check_manifest.py
recursive-include deployment *.yml
include *.lock
include Pipfile
recursive-include rero_ebooks *.png
Expand Down
1 change: 1 addition & 0 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ invenio-oaiserver = "*"
pipenv = "*"
requests = ">=2.20.0"
celery = "<4.3.0"
lxml = "<4.2.6,>=3.5.0"

[dev-packages]
Sphinx = ">=1.5.1"
Expand Down
77 changes: 37 additions & 40 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

69 changes: 0 additions & 69 deletions deployment/Dockerfile

This file was deleted.

21 changes: 0 additions & 21 deletions deployment/kubernetes/ebooks-cache-deployment.yml

This file was deleted.

16 changes: 0 additions & 16 deletions deployment/kubernetes/ebooks-cache-service.yml

This file was deleted.

Loading

0 comments on commit 04648ac

Please sign in to comment.