Compare commits

..

8 Commits
1.6 ... 1.7.1

Author SHA1 Message Date
Erik Huelsmann
e06638b048 * Automatic Dockerfile update by release process 2019-10-18 12:22:02 +00:00
Erik Huelsmann
d71609cae1 Fix Dockerfile mentioned version 2019-10-04 17:17:25 +02:00
Erik Huelsmann
8bc4fd8583 Update source URL to look in the official releases 2019-10-04 16:57:07 +02:00
Erik Huelsmann
52fdf5b65e Address failure to start Docker image
Starman is looking for LedgerSMB::PSGI and can't find it due to missing
library paths. Add -I arguments to fix it up.
2019-09-22 22:56:51 +02:00
Erik Huelsmann
29abd11efd Revert back to Stretch because Buster misses sSMTP
Note: we'll need to address this in due course in order to be
able to release our next release on Buster (which supports
more of our dependencies).
2019-08-28 21:27:53 +02:00
Erik Huelsmann
e9edcaf9ae Revert back to stretch; Buster misses 'ssmtp' 2019-08-28 09:50:48 +02:00
Erik Huelsmann
3a74802fe1 Add additional dependency provided on Buster (libhtml-escape-perl) 2019-08-27 23:14:49 +02:00
Erik Huelsmann
1b9701511e Update Dockerfile for 1.7.0 2019-08-27 23:09:20 +02:00
4 changed files with 54 additions and 64 deletions

View File

@@ -2,8 +2,8 @@ FROM debian:stretch-slim
MAINTAINER Freelock john@freelock.com MAINTAINER Freelock john@freelock.com
# Build time variables # Build time variables
ENV LSMB_VERSION 1.6.33 ARG LSMB_VERSION="1.7.1"
ARG LSMB_DL_DIR="Releases"
# 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...
@@ -16,6 +16,11 @@ ENV LSMB_VERSION 1.6.33
# Installing psql client directly from instructions at https://wiki.postgresql.org/wiki/Apt # 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 # That mitigates issues where the PG instance is running a newer version than this container
# for Buster, add:
# libhtml-escape-perl \
# libplack-middleware-builder-conditionals-perl \
# libplack-request-withencoding-perl \
#libversion-compare-perl
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/man1/ && \
mkdir -p /usr/share/man/man2/ && \ mkdir -p /usr/share/man/man2/ && \
@@ -28,10 +33,11 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >>
DEBIAN_FRONTEND="noninteractive" apt-get dist-upgrade -y -q && \ DEBIAN_FRONTEND="noninteractive" apt-get dist-upgrade -y -q && \
DEBIAN_FRONTEND="noninteractive" apt-get -y -q install \ DEBIAN_FRONTEND="noninteractive" apt-get -y -q install \
wget ca-certificates gnupg \ wget ca-certificates gnupg \
libcgi-emulate-psgi-perl libcgi-simple-perl libconfig-inifiles-perl \ libcgi-emulate-psgi-perl libconfig-inifiles-perl \
libdbd-pg-perl libdbi-perl libdata-uuid-perl libdatetime-perl \ libdbd-pg-perl libdbi-perl libdata-uuid-perl libdatetime-perl \
libdatetime-format-strptime-perl libio-stringy-perl \ libdatetime-format-strptime-perl \
libjson-xs-perl libcpanel-json-xs-perl liblist-moreutils-perl \ libio-stringy-perl \
libcpanel-json-xs-perl liblist-moreutils-perl \
liblocale-maketext-perl liblocale-maketext-lexicon-perl \ liblocale-maketext-perl liblocale-maketext-lexicon-perl \
liblog-log4perl-perl libmime-lite-perl libmime-types-perl \ liblog-log4perl-perl libmime-lite-perl libmime-types-perl \
libmath-bigint-gmp-perl libmodule-runtime-perl libmoose-perl \ libmath-bigint-gmp-perl libmodule-runtime-perl libmoose-perl \
@@ -42,13 +48,13 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >>
libpgobject-util-dbadmin-perl libplack-perl \ libpgobject-util-dbadmin-perl libplack-perl \
libplack-middleware-reverseproxy-perl \ libplack-middleware-reverseproxy-perl \
libtemplate-perl libtext-csv-perl libtext-csv-xs-perl \ libtemplate-perl libtext-csv-perl libtext-csv-xs-perl \
libtext-markdown-perl libxml-simple-perl \ libtext-markdown-perl libxml-simple-perl \
libnamespace-autoclean-perl \ libnamespace-autoclean-perl \
libimage-size-perl \ libfile-find-rule-perl \
libtemplate-plugin-latex-perl libtex-encode-perl \ libtemplate-plugin-latex-perl libtex-encode-perl \
libclass-c3-xs-perl libclass-accessor-lite-perl \ libclass-c3-xs-perl libclass-accessor-lite-perl \
libnet-cidr-lite-perl libtest-requires-perl \ libnet-cidr-lite-perl \
texlive-latex-recommended texlive-fonts-recommended \ texlive-latex-recommended \
texlive-xetex fonts-liberation \ texlive-xetex fonts-liberation \
starman \ starman \
libopenoffice-oodoc-perl \ libopenoffice-oodoc-perl \
@@ -59,7 +65,7 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >>
DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \ 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 postgresql-client && \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install git cpanminus make gcc libperl-dev && \ 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" && \ wget --quiet -O /tmp/ledgersmb-$LSMB_VERSION.tar.gz "https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" && \
tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \ tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \ rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
cpanm --notest \ cpanm --notest \

View File

@@ -3,8 +3,7 @@ Dockerfile for LedgerSMB Docker image
# Supported tags # Supported tags
- `1.7`, `1.7.x` - Latest official release from 1.7 branch - `1.6`, `1.6.x`, `latest` - Latest release tarball from 1.6 branch
- `1.6`, `1.6.x` - Latest release tarball from 1.6 branch
- `1.5`, `1.5.x` - Latest release tarball from 1.5 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 - `1.4`, `1.4.x` - Latest tagged release of git 1.4 branch
@@ -40,48 +39,56 @@ could require additional setup of a mail service or CUPS printer service.
The quickest way to get this image up and running is by using the The quickest way to get this image up and running is by using the
`docker-compose` file available through the GitHub repository at: `docker-compose` file available through the GitHub repository at:
https://github.com/ledgersmb/ledgersmb-docker/blob/1.7/docker-compose.yml https://github.com/ledgersmb/ledgersmb-docker/blob/1.6/docker-compose.yml
which sets up both this image and a supporting database image for which sets up both this image and a supporting database image for
production purposes (i.e. with persistent (database) data. The database production purposes (i.e. with persistent (database) data, with the
username and password are: 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
```plain ```plain
username: postgres $ docker run -d --name postgres \
password: abc -e POSTGRES_PASSWORD=mysecretpassword \
postgres:latest
``` ```
The docker-compose file does *not* set up an Nginx or Apache reverse proxy BEWARE: The command above creates a container with the database data stored
with TLS 1.2/1.3 support -- a requirement if you want to access your *inside* the container. Upon removal of the container, the database data will
installation over any type of network (and especially the internet). be removed too!
To prevent destruction of the database data upon replacement of the container,
please use these commands instead:
## Manual installation ```plain
$ docker volume create dbdata
This section assumes availability of a PostgreSQL server to attach to the $ docker run -d --name postgres \
LedgerSMB image as the database server. -e POSTGRES_PASSWORD=mysecretpassword \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v dbdata:/var/lib/postgresql/data \
postgres:latest
```
## Start LedgerSMB ## Start LedgerSMB
```plain ```plain
$ docker run -d -p 5762:5762 --name myledger \ $ docker run -d -p 5762:5762 --name myledger \
-e POSTGRES_HOST=<ip/hostname> ledgersmb/ledgersmb:latest ledgersmb/ledgersmb:latest
``` ```
This command maps port 5762 of your container to port 5762 in your host. The This command maps port 5762 of your container to port 5762 in your host. The
web application inside the container should now be accessible through web application inside the container should now be accessible through
http://localhost:5762/setup.pl and http://localhost:5762/login.pl. http://localhost:5762/setup.pl.
Below are more variables which determine container configuration,
like `POSTGRES_HOST` above.
## Set up LedgerSMB ## Set up LedgerSMB
* Visit http://myledger:5762/setup.pl. * Visit http://myledger:5762/setup.pl.
* Log in with the "postgres" user and the password `abc` as given above - * Log in with the "postgres" user and the password `mysecretpassword`
or with the credentials of your own database server in case of a manual and provide the name of a company (= database name) you want to create.
setup - and provide the name of a company (= database name) you want to
create.
* Go over the steps presented in the browser * Go over the steps presented in the browser
Once you have completed the setup steps, you have a fully functional Once you have completed the setup steps, you have a fully functional
@@ -166,18 +173,11 @@ and the startup & config script is /usr/bin/start.sh.
## Issues ## Issues
If you have any problems with or questions about this image or LedgerSMB, If you have any problems with or questions about this image or LedgerSMB, please contact us on the [mailing list](http://ledgersmb.org/topic/support/mailing-lists-rss-and-nntp-feeds) or through a [GitHub issue](https://github.com/ledgersmb/ledgersmb-docker/issues).
please contact us on the [mailing list](http://ledgersmb.org/topic/support/mailing-lists-rss-and-nntp-feeds)
or through a [GitHub issue](https://github.com/ledgersmb/ledgersmb-docker/issues).
You can also reach some of the official LedgerSMB maintainers via the You can also reach some of the official LedgerSMB maintainers via the `#ledgersmb` IRC channel on [Freenode](https://freenode.net), or on the bridged [Matrix](https://matrix.org) room in [#ledgersmb:matrix.org](https://matrix.to/#/#ledgersmb:matrix.org). The [Riot.im](https://riot.im/app/#/room/#ledgersmb:matrix.org) Matrix client is highly recommended.
`#ledgersmb` IRC channel on [Freenode](https://freenode.net), or on the
bridged [Matrix](https://matrix.org) room in [#ledgersmb:matrix.org](https://matrix.to/#/#ledgersmb:matrix.org).
The [Riot.im](https://riot.im/app/#/room/#ledgersmb:matrix.org) Matrix client is highly recommended.
## Contributing ## Contributing
You are invited to contribute new features, fixes, or updates, large or small; You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
we are always thrilled to receive pull requests, and do our best to process
them as fast as we can.

View File

@@ -28,7 +28,7 @@ services:
lsmb: lsmb:
depends_on: depends_on:
- postgres - postgres
image: ghcr.io/ledgersmb/ledgersmb:1.6 image: ledgersmb/ledgersmb:1.6
networks: networks:
- internal - internal
- default - default

View File

@@ -20,30 +20,14 @@ EOF
export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf' export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf'
fi fi
if [ ! -f "/tmp/ledgersmb" ]; then if [ ! -d "/tmp/ledgersmb" ]; then
mkdir /tmp/ledgersmb mkdir -p /tmp/ledgersmb
fi fi
# Currently unmaintained/untested
# if [ ! -z ${CREATE_DATABASE+x} ]; then
# perl tools/dbsetup.pl --company $CREATE_DATABASE \
# --host $POSTGRES_HOST \
# --postgres_password "$POSTGRES_PASS"
#fi
# Needed for modules loaded by cpanm
export PERL5LIB
for PerlLib in /usr/lib/perl5* /usr/local/lib/perl5*/site_perl/* ; do
[[ -d "$PerlLib" ]] && {
PERL5LIB="$PerlLib";
echo -e "\tmaybe: $PerlLib";
}
done ;
echo "Selected PERL5LIB=$PERL5LIB";
# start ledgersmb # start ledgersmb
# --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 bin/ledgersmb-server.psgi exec starman --port 5762 --workers ${LSMB_WORKERS:-5} -I lib -I old/lib \
--preload-app bin/ledgersmb-server.psgi