I managed to get Mayan running using Alpine Linux but the final image size 
was almost the same using Ubuntu. There were too many path and 
configuration file changes and while Alpine runs well it is not LSB 
compliant. I don't think it is a fit for something like as complex as Mayan 
and needs to run reliably in business settings. Alpine was a bit faster but 
is missing too many things like language files and fonts (our multi 
language Office test document doesn't render using Alpine). There are 
problems with Ubuntu too. Ubuntu 16.04, the recommended version for Mayan, 
is rather old and missing a recent kernel. Moving to a newer version breaks 
too many things. Ubuntu is not careful when it comes to backwards 
compatibility. RedHat, Fedora and CentOS were a disaster. Many basic 
libraries are missing and the official recommendation is to use third party 
repositories. No thanks. I'm going to try Debian next, which is very secure 
but also very stable in terms of release continuity (as opposed to Ubuntu).

Docker adding support for multi architecture images for many of its base 
images and while not yet official they are very stable and work very well. 
The Docker image for Raspberry Pi and for the Odroid deployed perfectly 
from the same Dockerfile file used to deploy for AMD64. However, given that 
the power and RAM of the ARM boards is considerably less than that of a 
desktop PC, the Dockerfile for these board will still need to be published 
as a separate repository. The main problem is that launching 4 workers 
(fast, medium, slow, OCR) works on a PC, on an ARM board, it consumes all 
available RAM (1 or 2 GB), which slows the board to a crawl.

We need a way to detect the platform for which the image is being generated 
and do a conditional branch to select a different template for supervisor 
for example. The official Postgres image does this but I have yet to 
understand how it does it.

Another suggestion I have is that we create several versions of the same 
release. Not really versions but "flavors". For example:

Mayan EDMS mini - For ARM boards, disables file signatures, workflows and 
OCR. Doesn't include LibreOffice or Tesseract.
Mayan EDMS user or standard - For AMD/Intel servers, disables file 
signatures and workflows.
Mayan EDMS commercial or enterprise - The current version of the Docker 
image.

Implementing these is easy. An environment variable is passed to the docker 
build command specifying the flavor of the image that triggers conditional 
code in the Docker file.

The current Docker repository URL for the Mayan EDMS image needs to be 
updated. Currently it is mayanedms/mayanedms. This doesn't allow for other 
flavors of the image.
A better scheme would be:

mayanedms/standard:2.8
mayanedms/mini:2.8
mayanedms/arm64:2.8 

and so on. It allows for different flavors and version of the product.

On Wednesday, February 28, 2018 at 8:36:42 PM UTC-4, lonevi...@gmail.com 
wrote:
>
> Yes we do :) But are trying to push some improvements before releasing it. 
> Eric is working on modernizing the existing Docker image. He is also trying 
> to merge it with the ARM Docker image to provide a single multi 
> architecture image that would work the same on a PC and on a Raspberry Pi. 
> We are also experimenting with Alpine Linux to reduce the image size. Once 
> finished we will announce it on the list.
>
> On Wednesday, February 28, 2018 at 2:07:59 PM UTC-4, RW Shore wrote:
>>
>> re version 2.8: do you plan to have a Docker container as well? (hint 
>> hint :-)
>>
>> On Tue, Feb 27, 2018 at 5:40 AM, <lonevi...@gmail.com> wrote:
>>
>>> Hi all,
>>>
>>> We love Mayan EDMS and have come to depend on it for our daily work. 
>>> Like many of you we are worried about the effects hurricane Maria has had 
>>> on the development of the project. So we decided to do something about it.
>>>
>>> We gained good knowledge about the internals of Mayan EDMS from customizing 
>>> it for our own use. Looking at the code for the next version we could see 
>>> that much work had already been done. We were confident we could finish the 
>>> remainder tasks to be able to take the code to a point where a version 2.8 
>>> would be possible.
>>>
>>> We contacted Roberto with our idea. While his communication options are 
>>> limited, he nonetheless provided us with some great guidelines. We 
>>> don't pretend our fork to replace Mayan EDMS so we are naming it Mayan EDMS 
>>> NG (Next generation). To make things easier we continued the version 
>>> numbering. 
>>>
>>> So, we are proud to release our work as Mayan EDMS NG version 2.8.
>>>
>>> Our forks is just a continuation of the work already started by Roberto 
>>> for version 2.8. Therefore it is 100% compatible with any existing data. 
>>>
>>> Our work focused on the following areas:
>>>
>>> * Finishing the API test refactor. The purpose of this refactor is to 
>>> test each API function for permission and access failure and success. The 
>>> API tests we also updated to conform with the new API Test class interface 
>>> which reduces a lot of boilerplate code. There are now a minimal of two 
>>> tests for each API function.
>>>
>>> * Some minor permission changes were made when obviously needed such as 
>>> the Workflow Create permission not having any effect.
>>>
>>> * Roberto had already backported the notifications feature to the "next" 
>>> branch and our work just focused on giving the final polish to this feature 
>>> by removing duplication.
>>>
>>> * Some user interface fixes and updated we added. These were inspired by 
>>> discussion on the mailing list and from looking at the Open Paperless fork 
>>> by Tina Zhou.
>>>
>>> * Introduction of the MERC (Mayan EDMS Request for Comment) as a means 
>>> of documenting the internals of the project, proposing features, changes to 
>>> the code as well as to the related process of the project. This type of 
>>> documentation mechanism has been very successful for other things like the 
>>> Internet (RFCs), Python (PEPs) and Django (DEPs) and we are sure it will 
>>> also help Mayan EDMS a lot.
>>>
>>> The repository for this fork is 
>>> https://gitlab.com/Michael.Price/mayan-edms. From there you can examine 
>>> the changes that we made to get the code to release level. Our work is 
>>> available from PyPI as mayan-edms-ng.
>>>
>>> We hope you enjoy it, thank you.
>>>
>>> Michael Price, internals and process
>>> Eric Riggs, user interface
>>>
>>> -- 
>>>
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Mayan EDMS" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to mayan-edms+...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"Mayan EDMS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mayan-edms+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to