Compare commits

..

15 Commits

Author SHA1 Message Date
Erik Huelsmann
1f9e54cbe8 * Automatic Dockerfile update by release process 2021-08-23 07:49:49 -04:00
Erik Huelsmann
955812f36b Update README.md 2021-08-17 13:50:41 +02:00
Erik Huelsmann
4f5f8e8cbf Print commands as they are executed (debugging purposes) 2021-08-13 23:55:50 +02:00
Erik Huelsmann
b7502825f1 Make the artifact location into a build ARG 2021-08-13 23:45:10 +02:00
Erik Huelsmann
3d73729575 Update README.md 2021-08-04 23:56:15 +02:00
Erik Huelsmann
f9aeeaad75 Update README.md 2021-08-04 23:55:28 +02:00
Erik Huelsmann
f7f7ecf3a1 * Automatic Dockerfile update by release process 2021-07-28 17:09:34 -04:00
Erik Huelsmann
4772312182 Update README.md 2021-07-10 23:54:05 +02:00
Erik Huelsmann
c5c6011073 Update README.md 2021-07-10 23:47:17 +02:00
Erik Huelsmann
db941843fb * Automatic Dockerfile update by release process 2021-07-10 13:34:58 -04:00
Erik Huelsmann
ae687da108 * Automatic Dockerfile update by release process 2021-06-14 14:55:24 -04:00
Erik Huelsmann
6bc115c7e6 * Automatic Dockerfile update by release process 2021-06-03 15:05:08 -04:00
Erik Huelsmann
d7bf3b30a0 * Automatic Dockerfile update by release process 2021-05-29 15:06:27 -04:00
Erik Huelsmann
8d6e8fe95b * Automatic Dockerfile update by release process 2021-05-02 13:05:16 -04:00
Erik Huelsmann
3156651671 * Automatic Dockerfile update by release process 2021-03-21 09:02:57 -04:00
4 changed files with 79 additions and 75 deletions

View File

@@ -1,53 +1,11 @@
FROM debian:buster-slim
MAINTAINER Freelock john@freelock.com
# Build time variables
ARG SRCIMAGE=debian:bullseye-slim
FROM $SRCIMAGE AS builder
ARG LSMB_VERSION="1.9.1"
ARG LSMB_VERSION="1.8.18"
ARG LSMB_DL_DIR="Releases"
ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz"
RUN set -x ; \
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install dh-make-perl libmodule-cpanfile-perl git wget && \
apt-file update
RUN set -x ; \
wget --quiet -O /tmp/ledgersmb-$LSMB_VERSION.tar.gz "$ARTIFACT_LOCATION" && \
tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
cd /srv/ledgersmb && \
( ( for lib in $( cpanfile-dump --with-all-features --recommends --no-configure --no-build --no-test ) ; \
do \
if dh-make-perl locate "$lib" 2>/dev/null ; \
then \
: \
else \
echo no : $lib ; \
fi ; \
done ) | grep -v dh-make-perl | grep -v 'not found' | grep -vi 'is in Perl ' | cut -d' ' -f4 | sort | uniq | tee /srv/derived-deps ) && \
cat /srv/derived-deps
#
#
# The real image build starts here
#
#
FROM $SRCIMAGE
LABEL org.opencontainers.image.authors="LedgerSMB project <devel@lists.ledgersmb.org>"
ARG LSMB_VERSION="1.9.1"
ARG LSMB_DL_DIR="Releases"
ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz"
# Install Perl, Tex, Starman, psql client, and all dependencies
# Without libclass-c3-xs-perl, performance is terribly slow...
@@ -56,9 +14,6 @@ ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSI
# Install Locale::Codes Locale::Country Locale::Language from CPAN to suppress
# deprecation-as-core-module warning
COPY --from=builder /srv/derived-deps /tmp/derived-deps
RUN set -x ; \
echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >> /etc/apt/apt.conf && \
mkdir -p /usr/share/man/man1/ && \
@@ -68,14 +23,38 @@ RUN set -x ; \
mkdir -p /usr/share/man/man5/ && \
mkdir -p /usr/share/man/man6/ && \
mkdir -p /usr/share/man/man7/ && \
mkdir -p /usr/share/man/man8/ && \
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install \
wget ca-certificates gnupg \
$( cat /tmp/derived-deps ) \
libclass-c3-xs-perl \
texlive-plain-generic texlive-latex-recommended texlive-fonts-recommended \
libauthen-sasl-perl libcgi-emulate-psgi-perl libconfig-inifiles-perl \
libcookie-baker-perl libdbd-pg-perl libdbi-perl libdata-uuid-perl \
libdatetime-perl libdatetime-format-strptime-perl \
libemail-sender-perl libemail-stuffer-perl libfile-find-rule-perl \
libhtml-escape-perl libhttp-headers-fast-perl libio-stringy-perl \
libjson-maybexs-perl libcpanel-json-xs-perl libjson-pp-perl \
liblist-moreutils-perl \
liblocale-maketext-perl liblocale-maketext-lexicon-perl \
liblog-log4perl-perl libmime-types-perl \
libmath-bigint-gmp-perl libmodule-runtime-perl libmoo-perl \
libmoox-types-mooselike-perl libmoose-perl \
libmoosex-nonmoose-perl libnumber-format-perl \
libpgobject-perl libpgobject-simple-perl libpgobject-simple-role-perl \
libpgobject-type-bigfloat-perl libpgobject-type-datetime-perl \
libpgobject-type-bytestring-perl libpgobject-util-dbmethod-perl \
libpgobject-util-dbadmin-perl libplack-perl \
libplack-builder-conditionals-perl libplack-middleware-reverseproxy-perl \
libplack-request-withencoding-perl libscope-guard-perl \
libsession-storage-secure-perl libstring-random-perl \
libtemplate-perl libtext-csv-perl libtext-csv-xs-perl \
libtext-markdown-perl libtry-tiny-perl libversion-compare-perl \
libxml-libxml-perl libnamespace-autoclean-perl \
starman starlet libhttp-parser-xs-perl \
libtemplate-plugin-latex-perl libtex-encode-perl \
libxml-twig-perl libopenoffice-oodoc-perl \
libexcel-writer-xlsx-perl libspreadsheet-writeexcel-perl \
libclass-c3-xs-perl liblocale-codes-perl \
texlive-latex-recommended texlive-fonts-recommended \
texlive-xetex fonts-liberation \
lsb-release && \
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
@@ -86,6 +65,7 @@ RUN set -x ; \
wget --quiet -O /tmp/ledgersmb-$LSMB_VERSION.tar.gz "$ARTIFACT_LOCATION" && \
tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
cpanm --reinstall --notest Locale::Country Locale::Codes Locale::Language && \
cpanm --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \

View File

@@ -4,8 +4,7 @@ Dockerfile for LedgerSMB Docker image
# Supported tags
- `1.9`, `1.9.x`, `latest` - Latest official release from the 1.9 branch
- `1.8`, `1.8.x` - Latest official release from the 1.8 branch
- `1.8`, `1.8.x`, `latest` - Latest official release from the 1.8 branch
- `1.7`, `1.7.x` - Latest official release from 1.7 branch
- `1.6`, `1.6.33` - Last official release from 1.6 branch
- `1.5`, `1.5.30` - Last official release from 1.5 branch
@@ -13,7 +12,7 @@ Dockerfile for LedgerSMB Docker image
- `master` - Master branch from git, unstable
Containers supporting the development process are provided
through the ledgersmb-dev-docker project. See https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started.
through the [ledgersmb-dev-docker project](https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started).
# What is LedgerSMB?
@@ -56,13 +55,25 @@ variables, are:
```plain
$ docker-compose pull
$ docker-compose up
$ docker-compose up -d
```
This will set up two containers: (1) a PostgreSQL container with persistent
storage which is retained between container updates and (2) a LedgerSMB
container configured to connect to the PostgreSQL container as its database
server.
server. The containers will be running in the background and can be stopped
and started by running:
```plain
# Stopping the containers
$ docker-compose stop
# Starting the containers
$ docker-compose start
```
(Check the status of the containers using `docker-compose ps`; when the
containers are running, the `State` column shows `Up`.)
The database username and password are:
@@ -72,7 +83,7 @@ The database username and password are:
```
From here, follow the steps as detailed in the instructions for
[preparing for first use](https://ledgersmb.org/content/preparing-ledgersmb-19-first-use).
[preparing for first use](https://ledgersmb.org/content/preparing-ledgersmb-17-first-use).
## Manual installation
@@ -149,6 +160,8 @@ affect the performance experience of users.
## Mail configuration
### 1.8.0 and higher
As of 1.8.0, the image is based on Debian Buster instead of Debian Stretch;
with Buster, the `ssmtp` program has been removed from Debian, this image
had to change strategy. The main application always came with built-in e-mail
@@ -165,6 +178,27 @@ The following parameters are now supported to set mail preferences:
* `LSMB_MAIL_SMTPAUTHMECH`
### Before 1.8.0
These variables are used to set outgoing SMTP defaults.
* `SSMTP_ROOT` (config: `Root` -- DEPRECATED)
* `SSMTP_MAILHUB` (config: `Mailhub`)
* `SSMTP_HOSTNAME` (config: `Hostname`)
* `SSMTP_USE_STARTTLS` (config: `UseSTARTTLS`)
* `SSMTP_AUTH_USER` (config: `AuthUser`)
* `SSMTP_AUTH_PASS` (config: `AuthPass`)
* `SSMTP_AUTH_METHOD` (config: `AuthMethod` -- DEPRECATED)
* `SSMTP_FROMLINE_OVERRIDE` (config: `FromLineOverride` -- DEPRECATED)
`SSMTP_MAILHUB` defaults to the default docker0 interface, so if your host is
already configured to relay mail, this should relay successfully with only
the root and hostname set.
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
@@ -181,8 +215,9 @@ please contact us on the [mailing list](http://ledgersmb.org/topic/support/maili
or through a [GitHub issue](https://github.com/ledgersmb/ledgersmb-docker/issues).
You can also reach some of the official LedgerSMB maintainers via the
[Matrix](https://matrix.org) room in [#ledgersmb:matrix.org](https://matrix.to/#/#ledgersmb:matrix.org).
The [Element](https://app.element.io/#/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

View File

@@ -16,7 +16,7 @@ services:
# because that allows us to use the default hostname ("postgres")
# from the LedgerSMB configuration
postgres:
image: postgres:12-alpine
image: postgres:9.6-alpine
environment:
# Replace the password below for a secure setup
POSTGRES_PASSWORD: abc
@@ -28,7 +28,7 @@ services:
lsmb:
depends_on:
- postgres
image: ledgersmb/ledgersmb:1.9
image: ledgersmb/ledgersmb:1.8
networks:
- internal
- default
@@ -58,15 +58,6 @@ services:
# SSMTP_AUTH_METHOD:
# SSMTP_USE_STARTTLS:
# SSMTP_FROMLINE_OVERRIDE:
#
#
# The PROXY_IP environment variable lets you set the IP address
# (range) of the reverse proxy used for TLS termination, which forwards
# its requests to this container. When this reverse proxy runs on the
# Docker host, the default below applies. In case the reverse proxy is
# hosted in a separate container, this setting needs to be adjusted.
#
# PROXY_IP: 172.17.0.1/12
# having the dbdata volume is required to persist our
# data between PostgreSQL container updates; without

View File

@@ -85,8 +85,6 @@ ${LSMB_MAIL_SMTPHOST:+smtphost=$LSMB_MAIL_SMTPHOST
}${LSMB_MAIL_SMTPPASS:+smtppass=$LSMB_MAIL_SMTPPASS
}${LSMB_MAIL_SMTPAUTHMECH:+smtpauthmech=$LSMB_MAIL_SMTPAUTHMECH
}
[proxy]
ip=${PROXY_IP:-172.17.0.1/12}
EOF
export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf'
fi
@@ -102,6 +100,6 @@ echo '--------- LEDGERSMB CONFIGURATION --- END'
# ':5762:' suppresses an uninitialized variable warning in starman
# the last colon means "don't connect using tls"; without it, there's a warning
exec starman --listen :5762: --workers ${LSMB_WORKERS:-5} \
exec starman --listen :5762: --max-workers ${LSMB_WORKERS:-5} \
-I lib -I old/lib \
--preload-app bin/ledgersmb-server.psgi