Compare commits

..

2 Commits

Author SHA1 Message Date
Erik Huelsmann
95d28c1b44 * Automatic Dockerfile update by release process 2018-01-07 21:05:30 +00:00
Erik Huelsmann
cd7e322f29 * Close #15 for the 1.5 branch 2018-01-06 14:16:11 +01:00
4 changed files with 15 additions and 129 deletions

View File

@@ -1,27 +1,15 @@
FROM debian:jessie-slim FROM debian:jessie
MAINTAINER Freelock john@freelock.com MAINTAINER Freelock john@freelock.com
# Build time variables # Build time variables
ENV LSMB_VERSION 1.5.22 ENV LSMB_VERSION 1.5.15
# Install Perl, Tex, Starman, psql client, and all dependencies # Install Perl, Tex, Starman, psql client, and all dependencies
# Without libclass-c3-xs-perl, performance is terribly slow... # Without libclass-c3-xs-perl, performance is terribly slow...
# Installing psql client directly from instructions at https://wiki.postgresql.org/wiki/Apt
# That mitigates issues where the PG instance is running a newer version than this container
RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >> /etc/apt/apt.conf && \ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >> /etc/apt/apt.conf && \
mkdir -p /usr/share/man/man1/ && \
mkdir -p /usr/share/man/man2/ && \
mkdir -p /usr/share/man/man3/ && \
mkdir -p /usr/share/man/man4/ && \
mkdir -p /usr/share/man/man5/ && \
mkdir -p /usr/share/man/man6/ && \
mkdir -p /usr/share/man/man7/ && \
DEBIAN_FRONTEND=noninteractive apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get update && \
apt-get dist-upgrade -y && apt-get -y install \ apt-get dist-upgrade -y && apt-get -y install \
curl wget ca-certificates \
libcgi-emulate-psgi-perl libcgi-simple-perl libconfig-inifiles-perl \ libcgi-emulate-psgi-perl libcgi-simple-perl libconfig-inifiles-perl \
libdbd-pg-perl libdbi-perl libdatetime-perl \ libdbd-pg-perl libdbi-perl libdatetime-perl \
libdatetime-format-strptime-perl libdigest-md5-perl \ libdatetime-format-strptime-perl libdigest-md5-perl \
@@ -35,17 +23,14 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >>
libtemplate-plugin-latex-perl libtex-encode-perl \ libtemplate-plugin-latex-perl libtex-encode-perl \
libmoosex-nonmoose-perl libclass-c3-xs-perl \ libmoosex-nonmoose-perl libclass-c3-xs-perl \
texlive-latex-recommended \ texlive-latex-recommended \
texlive-xetex fonts-liberation \ texlive-xetex \
starman \ starman \
libopenoffice-oodoc-perl \ libopenoffice-oodoc-perl \
postgresql-client \ postgresql-client \
ssmtp \ ssmtp \
lsb-release && \ lsb-release && \
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ DEBIAN_FRONTEND=noninteractive apt-get update && \
(wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -) && \ apt-get -y install git cpanminus make gcc libperl-dev && \
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install postgresql-client && \
DEBIAN_FRONTEND=noninteractive apt-get -y install git cpanminus make gcc libperl-dev && \
curl -Lo /tmp/ledgersmb-$LSMB_VERSION.tar.gz "https://download.ledgersmb.org/f/Releases/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" && \ curl -Lo /tmp/ledgersmb-$LSMB_VERSION.tar.gz "https://download.ledgersmb.org/f/Releases/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" && \
tar -xvzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \ tar -xvzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \ rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
@@ -58,8 +43,7 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >>
apt-get autoremove -y && \ apt-get autoremove -y && \
apt-get autoclean && \ apt-get autoclean && \
rm -rf ~/.cpanm/ && \ rm -rf ~/.cpanm/ && \
rm -rf /var/lib/apt/lists/* /usr/share/man/* rm -rf /var/lib/apt/lists/*
WORKDIR /srv/ledgersmb WORKDIR /srv/ledgersmb

View File

@@ -35,19 +35,6 @@ to add the TLS layer by applying Nginx or Apache as reverse proxy.
Enabling optional functionalities such as outgoing e-mail and printing Enabling optional functionalities such as outgoing e-mail and printing
could require additional setup of a mail service or CUPS printer service. could require additional setup of a mail service or CUPS printer service.
# Quickstart
The quickest way to get this image up and running is by using the
`docker-compose` file available through the GitHub repository at:
https://github.com/ledgersmb/ledgersmb-docker/blob/1.5/docker-compose.yml
which sets up both this image and a supporting database image for
production purposes (i.e. with persistent (database) data, with the
exception of one thing: setting up an Nginx or Apache reverse proxy
with TLS 1.2 support -- a requirement if you want to access your
installation over any type of network.
# How to use this image # How to use this image
## Start a postgres instance ## Start a postgres instance
@@ -129,26 +116,16 @@ Default: lsmb
Set this if you want to automatically log in to a particular LedgerSMB database Set this if you want to automatically log in to a particular LedgerSMB database
without needing to enter the name of that database on the login.pl login screen. without needing to enter the name of that database on the login.pl login screen.
## `LSMB_WORKERS`
Default: 5
Set this if you want to run in a memory-constrained environment. E.g. set it to
2 when running in a 1 GB memory setup. Please do note that this may adversely
affect the performance experience of users.
## Mail configuration ## Mail configuration
The docker image uses `ssmtp` to send mail. * `SSMTP_ROOT`
* `SSMTP_MAILHUB`
* `SSMTP_ROOT` (config: `Root`) * `SSMTP_HOSTNAME`
* `SSMTP_MAILHUB` (config: `Mailhub`) * `SSMTP_USE_STARTTLS`
* `SSMTP_HOSTNAME` (config: `Hostname`) * `SSMTP_AUTH_USER`
* `SSMTP_USE_STARTTLS` (config: `UseSTARTTLS`) * `SSMTP_AUTH_PASS`
* `SSMTP_AUTH_USER` (config: `AuthUser`) * `SSMTP_METHOD`
* `SSMTP_AUTH_PASS` (config: `AuthPass`) * `SSMTP_FROMLINE_OVERRIDE`
* `SSMTP_AUTH_METHOD` (config: `AuthMethod`)
* `SSMTP_FROMLINE_OVERRIDE` (config: `FromLineOverride`)
These variables are used to set outgoing SMTP defaults. These variables are used to set outgoing SMTP defaults.
@@ -160,9 +137,6 @@ already configured to relay mail, this should relay successfully with only
the root and hostname set. the root and hostname set.
Use the other environment variables to relay mail through a different host. Use the other environment variables to relay mail through a different host.
Use the [ssmtp.conf man
page](https://www.systutorials.com/docs/linux/man/5-ssmtp.conf/) to look up
the meaning and function of each of the mail configuration keys.
# Troubleshooting/Developing # Troubleshooting/Developing

View File

@@ -1,72 +0,0 @@
# This docker-compose file creates one
# compose 'project' consisting of two containers
#
# 1. The PostgreSQL data container
# 2. The LedgerSMB application container
#
# LedgerSMB persists all its data in the database,
# so no special care needs to be taken on
# container upgrades. With PostgreSQL, data is
# persisted across upgrades by the use of a
# special 'dbdata' volume
version: "3.2"
services:
# Note that the container needs to be named "postgres" here,
# because that allows us to use the default hostname ("postgres")
# from the LedgerSMB configuration
postgres:
image: postgres:9.6-alpine
environment:
# Replace the password below for a secure setup
POSTGRES_PASSWORD: abc
PGDATA: /var/lib/postgresql/data/pgdata
networks:
- internal
volumes:
- "pgdata:/var/lib/postgresql/data"
lsmb:
depends_on:
- postgres
image: ledgersmb/ledgersmb:1.5
networks:
- internal
- default
# Uncomment the 'ports' section to map the LedgerSMB container port (5762)
# to the host's port of the same number, thus making LedgerSMB
# available on http://<host-dns-or-ip>:5762/
# SECURITY NOTE: Do this for evaluation purposes only!
# In production, be sure to use SSL/TLS to protect user's passwords
# and other sensitive data
# ports:
# - "5762:5762"
environment:
# The LSMB_WORKERS environment variable lets you select the number
# of processes serving HTTP requests. The default number of 2 workers
# is geared toward limited-memory situations (1 GB). In order to
# improve the performance experience, increase memory and the
# number of workers
#
LSMB_WORKERS: 2
#
#
# SSMTP_ROOT:
# SSMTP_HOSTNAME:
# SSMTP_MAILHUB:
# SSMTP_AUTH_USER:
# SSMTP_AUTH_PASS:
# SSMTP_AUTH_METHOD:
# SSMTP_USE_STARTTLS:
# SSMTP_FROMLINE_OVERRIDE:
# having the dbdata volume is required to persist our
# data between PostgreSQL container updates; without
# that, the data is contained in the same volume as
# the rest of the image and on update/upgrade, the
# data will be lost.
volumes:
pgdata:
networks:
internal:

View File

@@ -45,4 +45,4 @@ echo "Selected PERL5LIB=$PERL5LIB";
# --preload-app allows application initialization to kill the entire # --preload-app allows application initialization to kill the entire
# starman instance (instead of just the worker, which will immediately # starman instance (instead of just the worker, which will immediately
# get restarted); it also has a positive effect on memory use # get restarted); it also has a positive effect on memory use
exec starman --port 5762 --workers ${LSMB_WORKERS:-5} --preload-app tools/starman.psgi exec starman --port 5762 --preload-app tools/starman.psgi