From 800700474e3e0d94094c77c0ed5a296f649c2e31 Mon Sep 17 00:00:00 2001 From: Lars Holm Nielsen Date: Tue, 19 Feb 2019 10:42:52 +0100 Subject: [PATCH] docs: README updates --- AUTHORS.rst | 6 +++ Dockerfile-build-process-custom.png | Bin 28021 -> 0 bytes Dockerfile-build-process.png | Bin 25624 -> 0 bytes LICENSE | 2 +- README.md | 57 +++++++++++++++++----------- 5 files changed, 41 insertions(+), 24 deletions(-) delete mode 100644 Dockerfile-build-process-custom.png delete mode 100644 Dockerfile-build-process.png diff --git a/AUTHORS.rst b/AUTHORS.rst index 5907708..dda35f0 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -8,3 +8,9 @@ Contributors ============ +- Chiara Bigarella +- Chris Topaloudis +- Diego Rodriguez +- Dinos Kousidis +- Lars Holm Nielsen +- Rokas Maciulaitis diff --git a/Dockerfile-build-process-custom.png b/Dockerfile-build-process-custom.png deleted file mode 100644 index 156b90db338a49237d78a3cbe4d3a8fa2b0f8180..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28021 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%0A_%bUNaj584Mycxf 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

j)zP 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 xUm5{ot0Rx0^qwg`M+_byzkmMs{~YJs%8enlCW^ diff --git a/LICENSE b/LICENSE index edde62f..a79aa51 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (C) 2018 CERN. +Copyright (C) 2018-2019 CERN. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/README.md b/README.md index cbdf470..4152f24 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,50 @@ -# docker-invenio +# CentOS 7 with Python 3 for Invenio -[![Build Status](https://travis-ci.org/inveniosoftware/docker-invenio.svg?branch=master"BuildStatus\")](https://travis-ci.org/inveniosoftware/docker-invenio/branches?branch=master) [![image](https://img.shields.io/docker/automated/inveniosoftware/centos7-python.svg)](https://hub.docker.com/r/inveniosoftware/centos7-python/) [![image](https://img.shields.io/docker/build/inveniosoftware/centos7-python.svg)](https://hub.docker.com/r/inveniosoftware/centos7-python/builds/) +[![Build Status](https://travis-ci.org/inveniosoftware/docker-invenio.svg?branch=master)](https://travis-ci.org/inveniosoftware/docker-invenio) [![image](https://img.shields.io/docker/automated/inveniosoftware/centos7-python.svg)](https://hub.docker.com/r/inveniosoftware/centos7-python/) [![image](https://img.shields.io/docker/build/inveniosoftware/centos7-python.svg)](https://hub.docker.com/r/inveniosoftware/centos7-python/builds/) -This repository contains Docker base images to generate the environment for -[Invenio](https://github.com/inveniosoftware/invenio) applications. +This image serves as base image for [Invenio](https://github.com/inveniosoftware/invenio) instances running on CentOS7. The purpose is to provide a base image that is usable in production environments like OpenShift. -**Prerequisites** Docker: [https://docs.docker.com/install/](https://docs.docker.com/install/) +The image is based on the official CentOS image ``centos:7`` and contains: + +- Python 3.6 set as default Python interpreter with upgraded versions of pip, pipenv, setuptools and wheel. +- Tools: Node.js, NPM, Git, Curl Vim, Emacs, Development Tools. +- Library devel packages: libffi, libxml2, libxslt. +- Working directory for an Invenio instance. + +## Supported tags and respective ``Dockerfile`` links + +* 3.6 - [Dockerfile](https://github.com/inveniosoftware/docker-invenio/blob/master/python3.6/Dockerfile). ## Usage -Detailed usage is described in the [invenio getting started guide](https://invenio-software.org/gettingstarted/). +This image is used by the scaffolded Dockerfile in the Invenio [getting started guide](https://inveniosoftware.org/gettingstarted/). See the guide for quickly getting started. -## Build the new images +### Create a ``Dockerfile`` -Build the images by running the docker build with the appropiate tag, i.e: +A simple ``Dockerfile`` using this base image could look like this: -`docker build -f python3.6/Dockerfile -t my-site-base .` +``` +FROM inveniosoftware/centos7-python:3.6 +COPY ./ . +COPY ./docker/uwsgi/ ${INVENIO_INSTANCE_PATH} +RUN ./scripts/bootstrap +``` -## Supported Tags and respective Dockerfile links +### Environment variables -* 3.6 - [Dockerfile](https://github.com/inveniosoftware/docker-invenio/blob/master/python3.6/Dockerfile). +The following environment variables has been set: -## Helpful resources +- ``WORKING_DIR=/opt/invenio`` +- ``INVENIO_INSTANCE_PATH=/opt/invenio/var/instance`` +- ``INVENIO_USER_ID=1000`` -* [Docker Community Forums](https://forums.docker.com/) -* [Docker Community Slack](https://blog.docker.com/2016/11/introducing-docker-community-directory-docker-community-slack/) -* [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker) -* [Issue tracker](https://github.com/inveniosoftware/docker-invenio/issues) +### Rolling builds + +The image is rebuild when the base image ``centos7:latest`` is updated. The base image is receiving regular monthly updates as well as emergency fixes. ## Automated builds -Automated builds are configured using [Docker Hub builds](https://docs.docker.com/docker-hub/builds/). The tiggers are defined the following way: +Automated builds are configured using [Docker Hub builds](https://docs.docker.com/docker-hub/builds/). The triggers are defined the following way: ```(bash) Branch/tag Dockerfile Docker tag @@ -39,14 +53,11 @@ Push to master ---> /python3.6/Dockerfile ---> 3.6 Push /^3\.6.*/ tag ---> /python3.6/Dockerfile ---> git-tag-name, 3.6 ``` -That way, we will use tag `3.6` as latest for Python version and there is also the possibility to push tags for specific use cases such as pinning certain libraries or patches. - -Maintained by: [InvenioSoftware](https://github.com/inveniosoftware/) +This way, we will use tag `3.6` as latest for Python version and there is also the possibility to push tags for specific use cases such as pinning certain libraries or patches. ## License -This file is part of Invenio. -Copyright (C) 2015-2018 CERN. +Copyright (C) 2018-2019 CERN. -Invenio is free software; you can redistribute it and/or modify it +Docker-Invenio is free software; you can redistribute it and/or modify it under the terms of the MIT License; see LICENSE file for more details.