Compare commits

..

38 Commits

Author SHA1 Message Date
Erik Huelsmann
5cb61f5a69 * Automatic Dockerfile update by release process 2019-11-29 10:31:09 +00:00
Erik Huelsmann
86ad5c0b64 * Automatic Dockerfile update by release process 2019-11-15 18:48:18 +00:00
Erik Huelsmann
76dc35fa75 * Automatic Dockerfile update by release process 2019-11-02 15:31:25 +00:00
Erik Huelsmann
2846d97696 * Automatic Dockerfile update by release process 2019-10-18 11:53:45 +00:00
Erik Huelsmann
4bf0946de9 * Automatic Dockerfile update by release process 2019-09-29 19:27:23 +00:00
Erik Huelsmann
44e9ad83b8 * Automatic Dockerfile update by release process 2019-08-18 21:05:44 +00:00
Erik Huelsmann
d899a7137c * Automatic Dockerfile update by release process 2019-01-20 14:32:04 +00:00
Erik Huelsmann
4d9aa13a7d * Automatic Dockerfile update by release process 2018-12-25 23:29:52 +00:00
Erik Huelsmann
89e2cef3af * Automatic Dockerfile update by release process 2018-12-16 18:19:26 +00:00
Erik Huelsmann
0746f6e17d * Automatic Dockerfile update by release process 2018-12-14 11:33:37 +00:00
Erik Huelsmann
fc3f0cdf6a * Automatic Dockerfile update by release process 2018-10-14 20:10:54 +00:00
Erik Huelsmann
d42ade1dc0 * Automatic Dockerfile update by release process 2018-09-16 20:01:29 +00:00
Erik Huelsmann
1ff4cc42c3 * Add (missing) PostgreSQL repository in sources.list 2018-09-13 21:22:52 +02:00
Erik Huelsmann
26b679fe7d * Automatic Dockerfile update by release process 2018-08-25 12:35:52 +00:00
Erik Huelsmann
82e2dd4839 * Automatic Dockerfile update by release process 2018-07-22 21:55:15 +00:00
Erik Huelsmann
4cb2cad5c1 * Update README.md to mention 1.6 tags 2018-06-29 20:54:44 +02:00
Erik Huelsmann
c5c0575c94 * Automatic Dockerfile update by release process 2018-06-23 18:14:14 +00:00
Erik Huelsmann
b4ed837573 * Automatic Dockerfile update by release process 2018-06-17 10:32:14 +00:00
Erik Huelsmann
fae1cd333e * Fix download link 2018-06-10 14:00:45 +02:00
Erik Huelsmann
75f3dfd642 * Automatic Dockerfile update by release process 2018-06-10 08:43:10 +00:00
Erik Huelsmann
5afb58f246 * Update 1.6 branch to RC4 2018-06-04 23:49:07 +02:00
Erik Huelsmann
a5d89bc9fe * Update release for RC3 2018-06-04 00:38:55 +02:00
Erik Huelsmann
b8795c4811 * Update 1.6 RC2 release 2018-06-03 20:40:38 +02:00
Erik Huelsmann
b828cffad3 * Add option to set the number of Starman workers 2018-05-23 23:22:03 +02:00
Erik Huelsmann
36bc6d5ffc * Adjust database host name so that the Compose setup works out-of-the-box again 2018-05-23 21:45:55 +02:00
Erik Huelsmann
59be4f4afa * Add documentation of the availability of a 'ports' statement
Note that we found in the LedgerSMB Matrix chat channel that users
need more straight forward ways to quickly evaluate our proposition
which they are able to offer if we skip the TLS requirement

Also note that the TLS requirement requires a domain, which some
might not have at the stage where the system is only being evaluated.
2018-05-23 21:40:37 +02:00
Erik Huelsmann
f898c2bb63 * Add back lost dash before 'y' option 2018-05-22 22:11:18 +02:00
Erik Huelsmann
c2573f6a7e * Fix short-option prefixed with double dash 2018-05-22 21:27:57 +02:00
Erik Huelsmann
38ab58e93a * Make Docker build output more compact 2018-05-22 21:05:01 +02:00
Erik Huelsmann
d45d0a7182 * Upgrade Docker 1.6 image to 1.6.0-rc1 2018-05-22 20:45:40 +02:00
Erik Huelsmann
d640f5e6a0 * Update to 1.6.0-beta2 2018-05-13 14:15:33 +02:00
Erik Huelsmann
d7c3bd6038 * There is no starman.psgi anymore. Instead, it's ledgersmb-server.psgi 2018-05-07 00:17:34 +02:00
Erik Huelsmann
9c2c5a20c6 * Update version reference (1.5 -> 1.6) in docker-compose.yml 2018-05-06 13:35:24 +02:00
Erik Huelsmann
ebb6a521ef * Correct dependency reference 2018-05-06 13:15:31 +02:00
Erik Huelsmann
058848a29a * More dependencies taken from the Debian repository 2018-05-06 12:30:30 +02:00
Erik Huelsmann
a0053b33b6 * Add dependency for HTML::Entities to build succesfully 2018-05-06 12:14:00 +02:00
Erik Huelsmann
a5ca6aa894 * Update Dockerfile for 1.6 dependencies and building 1.6 images
Note that 1.6 switches to Stretch as the base image, allowing us to
use more packages from the Debian repository (but we still depend on
un-packaged packages(?))
2018-05-06 00:30:49 +02:00
Erik Huelsmann
c616d6f8ab * Add docker-compose file and add it to the README 2018-03-12 22:39:35 +01:00
4 changed files with 141 additions and 33 deletions

View File

@@ -1,12 +1,17 @@
FROM debian:jessie-slim
FROM debian:stretch-slim
MAINTAINER Freelock john@freelock.com
# Build time variables
ENV LSMB_VERSION 1.5.18
ENV LSMB_VERSION 1.6.16
# Install Perl, Tex, Starman, psql client, and all dependencies
# Without libclass-c3-xs-perl, performance is terribly slow...
# Without libclass-accessor-lite-perl, HTML::Entities won't build from CPAN
# libnet-cidr-lite-perl is a dependency for Plack::Builder::Conditionals
# which is being installed from CPAN
# libtest-requires-perl is a dependency of Module-Build-Pluggable-PPPort
# on which HTML::Escape depends
# 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
@@ -19,46 +24,54 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >>
mkdir -p /usr/share/man/man5/ && \
mkdir -p /usr/share/man/man6/ && \
mkdir -p /usr/share/man/man7/ && \
DEBIAN_FRONTEND=noninteractive apt-get update && \
apt-get dist-upgrade -y && apt-get -y install \
curl wget ca-certificates \
DEBIAN_FRONTEND="noninteractive" apt-get update -q && \
DEBIAN_FRONTEND="noninteractive" apt-get dist-upgrade -y -q && \
DEBIAN_FRONTEND="noninteractive" apt-get -y -q install \
wget ca-certificates gnupg \
libcgi-emulate-psgi-perl libcgi-simple-perl libconfig-inifiles-perl \
libdbd-pg-perl libdbi-perl libdatetime-perl \
libdatetime-format-strptime-perl libdigest-md5-perl \
libfile-mimeinfo-perl libjson-xs-perl libjson-perl \
libdbd-pg-perl libdbi-perl libdata-uuid-perl libdatetime-perl \
libdatetime-format-strptime-perl libio-stringy-perl \
libjson-xs-perl libcpanel-json-xs-perl liblist-moreutils-perl \
liblocale-maketext-perl liblocale-maketext-lexicon-perl \
liblog-log4perl-perl libmime-base64-perl libmime-lite-perl \
libmath-bigint-gmp-perl libmoose-perl libnumber-format-perl \
liblog-log4perl-perl libmime-lite-perl libmime-types-perl \
libmath-bigint-gmp-perl libmodule-runtime-perl libmoose-perl \
libmoosex-nonmoose-perl libnumber-format-perl \
libpgobject-perl libpgobject-simple-perl libpgobject-simple-role-perl \
libpgobject-util-dbmethod-perl libplack-perl libtemplate-perl \
libpgobject-type-bigfloat-perl libpgobject-type-datetime-perl \
libpgobject-type-bytestring-perl libpgobject-util-dbmethod-perl \
libpgobject-util-dbadmin-perl libplack-perl \
libplack-middleware-reverseproxy-perl \
libtemplate-perl libtext-csv-perl libtext-csv-xs-perl \
libtext-markdown-perl libxml-simple-perl \
libnamespace-autoclean-perl \
libimage-size-perl \
libtemplate-plugin-latex-perl libtex-encode-perl \
libmoosex-nonmoose-perl libclass-c3-xs-perl \
libclass-c3-xs-perl libclass-accessor-lite-perl \
libnet-cidr-lite-perl libtest-requires-perl \
texlive-latex-recommended \
texlive-xetex fonts-liberation \
starman \
libopenoffice-oodoc-perl \
postgresql-client \
ssmtp \
lsb-release && \
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
(wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -) && \
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" && \
tar -xvzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
cpanm --quiet --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \
--with-feature=openoffice \
--installdeps /srv/ledgersmb/ && \
apt-get purge -y git cpanminus make gcc libperl-dev && \
apt-get autoremove -y && \
apt-get autoclean && \
rm -rf ~/.cpanm/ && \
rm -rf /var/lib/apt/lists/* /usr/share/man/*
DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install postgresql-client && \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install git cpanminus make gcc libperl-dev && \
wget --quiet -O /tmp/ledgersmb-$LSMB_VERSION.tar.gz "https://download.ledgersmb.org/f/Releases/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" && \
tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
cpanm --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \
--with-feature=openoffice \
--installdeps /srv/ledgersmb/ && \
apt-get purge -q -y git cpanminus make gcc libperl-dev && \
apt-get autoremove -q -y && \
apt-get autoclean -q && \
rm -rf ~/.cpanm/ && \
rm -rf /var/lib/apt/lists/* /usr/share/man/*
WORKDIR /srv/ledgersmb

View File

@@ -3,10 +3,9 @@ Dockerfile for LedgerSMB Docker image
# Supported tags
- `1.5`, `1.5.x`, `latest` - Latest release tarball from 1.5 branch
- `1.6`, `1.6.x`, `latest` - Latest release tarball from 1.6 branch
- `1.5`, `1.5.x` - Latest release tarball from 1.5 branch
- `1.4`, `1.4.x` - Latest tagged release of git 1.4 branch
- `master` - Master branch from git, unstable
- `master-dev`, `1.5-dev` - Containers to kick off a development setup
# What is LedgerSMB?
@@ -35,6 +34,19 @@ to add the TLS layer by applying Nginx or Apache as reverse proxy.
Enabling optional functionalities such as outgoing e-mail and printing
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.6/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/1.3 support -- a requirement if you want to access your
installation over any type of network.
# How to use this image
## Start a postgres instance
@@ -116,8 +128,18 @@ Default: lsmb
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.
## `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
The docker image uses `ssmtp` to send mail.
* `SSMTP_ROOT` (config: `Root`)
* `SSMTP_MAILHUB` (config: `Mailhub`)
* `SSMTP_HOSTNAME` (config: `Hostname`)

72
docker-compose.yml Normal file
View File

@@ -0,0 +1,72 @@
# 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.6
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,5 @@ echo "Selected PERL5LIB=$PERL5LIB";
# --preload-app allows application initialization to kill the entire
# starman instance (instead of just the worker, which will immediately
# get restarted); it also has a positive effect on memory use
exec starman --port 5762 --preload-app tools/starman.psgi
exec starman --port 5762 --workers ${LSMB_WORKERS:-5} --preload-app bin/ledgersmb-server.psgi