IMAGE gnuhealth LAYER shared/alpine3.9 LAYER shared/alpine3.9-python3.6 LAYER shared/alpine3.9-nodejs10 LAYER gnuhealth/gnuhealth FIXLAYER /usr/bin/fix-apk RUN EOF # Install runtime dependencies apk --no-cache add bash coreutils libffi libjpeg-turbo libpq # Install build dependencies apk --no-cache add --virtual .deps build-base git libffi-dev libjpeg-turbo-dev libxml2-dev libxslt-dev ncurses npm patch postgresql-dev python3-dev sudo # Download GNU Health wget http://ftp.gnu.org/gnu/health/gnuhealth-3.4.0.tar.gz -O /tmp/gnuhealth.tgz tar xzf /tmp/gnuhealth.tgz -C /srv mv /srv/gnuhealth-3.4.0 /srv/install # Hackfix python-barcode support (will work in 3.4.1 - see http://hg.savannah.gnu.org/hgweb/health/rev/61b7bc7b1a78) sed -i 's/pybarcode/python-barcode/' /srv/install/gnuhealth-setup # Clone Sao (Tryton web client) repository git clone -b 4.6 --single-branch --depth 1 https://github.com/tryton/sao /srv/gnuhealth/sao # Create OS user addgroup -S -g 8008 gnuhealth adduser -S -u 8008 -h /srv/gnuhealth -s /bin/bash -g gnuhealth -G gnuhealth gnuhealth chown -R gnuhealth:gnuhealth /srv/gnuhealth # Install GNU Health cd /srv/install sudo -u gnuhealth ./gnuhealth-setup install # Hackfix extraneous pymongo requirement sed -i '/pymongo/d' /srv/gnuhealth/gnuhealth/tryton/server/modules/health_federation/health_federation.py # Hackfix template1 database lock sed -i 's/template1/gnuhealth/g' /srv/gnuhealth/gnuhealth/tryton/server/trytond-4.6.13/trytond/backend/postgresql/database.py # Install Sao (Tryton web client) dependencies cd /srv/gnuhealth/sao sudo -u gnuhealth npm install --production sudo -u gnuhealth ./node_modules/grunt-cli/bin/grunt # Download Demo database wget http://health.gnu.org/downloads/postgres_dumps/gnuhealth-34-demo.sql.gz -O /srv/gnuhealth/gnuhealth_demo.sql.gz # Cleanup apk --no-cache del .deps find /srv/gnuhealth -name '.git*' -exec rm -rf {} + rm -rf /srv/install rm -f /tmp/gnuhealth.tgz EOF MOUNT DIR /srv/gnuhealth/conf srv/gnuhealth/gnuhealth/tryton/server/config USER 8008 8008 ENV PATH /srv/gnuhealth/gnuhealth/tryton/server/trytond-4.6.13/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV TRYTOND_CONFIG /srv/gnuhealth/gnuhealth/tryton/server/config/trytond.conf ENV PYTHONPATH /srv/gnuhealth/gnuhealth/tryton/server/trytond-4.6.13:/srv/gnuhealth/gnuhealth/tryton/server/config CMD trytond --verbose