Compare commits

..

156 Commits

Author SHA1 Message Date
Erik Huelsmann
0c80fb46fc * Automatic Dockerfile update by release process 2022-08-10 16:00:30 -04:00
Erik Huelsmann
0f6ceead07 * Automatic Dockerfile update by release process 2022-04-09 10:21:09 -04:00
Erik Huelsmann
9b8dac1b46 Change the hosting location of the LedgerSMB Docker images 2022-01-28 22:53:46 +01:00
Erik Huelsmann
f09fe4e6b1 * Automatic Dockerfile update by release process 2022-01-19 16:52:29 -05:00
Erik Huelsmann
fb16267a93 * Automatic Dockerfile update by release process 2021-12-08 15:33:57 -05:00
Erik Huelsmann
fed8a29266 * Automatic Dockerfile update by release process 2021-10-12 15:35:11 -04:00
Erik Huelsmann
6ddc8da10d Set the reverse proxy address to the default Docker address range 2021-09-17 23:03:40 +02:00
Erik Huelsmann
b46592f2cb Add reverse proxy configuration option 2021-09-17 22:40:42 +02:00
Erik Huelsmann
5717494020 * Automatic Dockerfile update by release process 2021-09-03 14:08:36 -04:00
Erik Huelsmann
6e529873ae Add libclass-accessor-lite-perl dependency explicitly because it fails to build 2021-08-30 01:08:29 +02:00
Erik Huelsmann
13572ee685 Use multi-stage build to derive dependency packages 2021-08-30 00:56:17 +02:00
Erik Huelsmann
2056ad56cb * Automatic Dockerfile update by release process 2021-08-25 16:50:01 -04:00
Erik Huelsmann
3658a14ccd * Automatic Dockerfile update by release process 2021-08-23 07:27:15 -04:00
Erik Huelsmann
f114db8fcb Print commands as they are executed (debugging purposes) 2021-08-13 23:57:07 +02:00
Erik Huelsmann
2849671500 Make the artifact location into a build ARG 2021-08-13 23:43:51 +02:00
Erik Huelsmann
bdebd44ae0 Update README.md 2021-07-10 23:54:48 +02:00
Erik Huelsmann
c95e4b4b9d Update README.md 2021-07-10 23:50:06 +02:00
Erik Huelsmann
7c89b26987 * Automatic Dockerfile update by release process 2021-07-08 18:07:40 -04:00
Erik Huelsmann
cd7f62abc6 * Automatic Dockerfile update by release process 2021-06-14 14:42:45 -04:00
Erik Huelsmann
d518733d23 * Automatic Dockerfile update by release process 2021-06-03 14:41:51 -04:00
Erik Huelsmann
53c4e6ac92 * Automatic Dockerfile update by release process 2021-05-29 15:02:16 -04:00
Erik Huelsmann
78b902ddc9 * Automatic Dockerfile update by release process 2021-05-02 12:54:03 -04:00
Erik Huelsmann
c1fee69d52 * Automatic Dockerfile update by release process 2021-03-21 08:26:45 -04:00
Erik Huelsmann
33d4019521 * Automatic Dockerfile update by release process 2021-01-31 18:28:17 +00:00
Erik Huelsmann
2a138c50f2 * Automatic Dockerfile update by release process 2020-12-14 22:00:15 +00:00
Erik Huelsmann
11baa4c0a0 * Automatic Dockerfile update by release process 2020-11-18 20:39:19 +00:00
Erik Huelsmann
7e914dbfd1 * Automatic Dockerfile update by release process 2020-09-27 18:57:27 +00:00
Erik Huelsmann
1a1d294e31 * Automatic Dockerfile update by release process 2020-09-18 07:49:04 +00:00
Erik Huelsmann
44b544c8ba * Automatic Dockerfile update by release process 2020-09-13 19:20:04 +00:00
Erik Huelsmann
5dc7176b3f * Automatic Dockerfile update by release process 2020-09-04 19:18:29 +00:00
Erik Huelsmann
f25dee9473 * Automatic Dockerfile update by release process 2020-08-28 21:35:51 +00:00
Erik Huelsmann
0332a27535 Re #23: Add dependency on texlive-fonts-recommended 2020-08-24 22:46:32 +02:00
Erik Huelsmann
19c6b2d6df * Automatic Dockerfile update by release process 2020-07-25 09:08:22 +00:00
Erik Huelsmann
6ff37dc952 * Automatic Dockerfile update by release process 2020-06-29 09:25:07 +00:00
Erik Huelsmann
da234d021d * Automatic Dockerfile update by release process 2020-06-21 21:05:58 +00:00
Erik Huelsmann
ffb7ff1a09 Map the LedgerSMB port (5762) explicitly to local loopback (only) 2020-06-17 21:44:13 +02:00
Erik Huelsmann
966c1fd043 * Automatic Dockerfile update by release process 2020-05-31 12:42:56 +00:00
Erik Huelsmann
ba98f4c5c0 Update README to include 1.8 tag 2020-05-31 11:22:32 +02:00
Erik Huelsmann
20bd26798a * Automatic Dockerfile update by release process 2020-05-23 21:50:43 +00:00
Erik Huelsmann
f4bc2c874f * Automatic Dockerfile update by release process 2020-05-06 19:12:40 +00:00
Erik Huelsmann
0897045096 * Automatic Dockerfile update by release process 2020-04-27 15:17:44 +00:00
Erik Huelsmann
53ab84cbaa Update README.md 2020-04-12 21:34:14 +02:00
Erik Huelsmann
760c5c0138 * Automatic Dockerfile update by release process 2020-04-11 18:39:34 +00:00
Erik Huelsmann
8930ac395d * Automatic Dockerfile update by release process 2020-03-07 15:14:25 +00:00
Erik Huelsmann
1bbf65543b Update README.md to set correct list of supported tags 2020-03-07 15:38:14 +01:00
Erik Huelsmann
ba202372fa Add formatting to README.md 2020-02-10 23:44:10 +01:00
Erik Huelsmann
3197f4feab Change manual setup section to prevent suggested simplicity
We've seen multiple users thinking that simple creation of two containers
is enough, whereas this isn't the case: at the very least, the deprecated
`--link` docker option must be used, but more compliant is the use of
custom networks and bridges. Docker-compose sets all that up automatically,
so don't suggest going without docker-compose is simpler.
2020-02-10 23:28:06 +01:00
Erik Huelsmann
46a5386e54 * Automatic Dockerfile update by release process 2020-02-10 20:48:32 +00:00
Erik Huelsmann
6122921674 * Automatic Dockerfile update by release process 2020-01-22 21:50:04 +00:00
Erik Huelsmann
db957f3880 * Automatic Dockerfile update by release process 2020-01-12 20:43:00 +00:00
Erik Huelsmann
7e059e5dc1 Update image to point to 1.7 2020-01-06 21:56:50 +01:00
Erik Huelsmann
421c153249 * Automatic Dockerfile update by release process 2019-12-26 18:05:31 +00:00
Erik Huelsmann
1f40452e92 * Automatic Dockerfile update by release process 2019-12-13 16:16:14 +00:00
Erik Huelsmann
98c38f998a * Automatic Dockerfile update by release process 2019-11-29 10:59:36 +00:00
Erik Huelsmann
6d3b30720c * Automatic Dockerfile update by release process 2019-11-15 19:23:03 +00:00
Erik Huelsmann
aa66d87e15 * Automatic Dockerfile update by release process 2019-11-02 15:59:50 +00:00
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
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
Erik Huelsmann
f69a36a5d3 * Automatic Dockerfile update by release process 2018-03-11 10:35:54 +00:00
Erik Huelsmann
dbed029289 * Automatic Dockerfile update by release process 2018-02-26 16:55:54 +00:00
Erik Huelsmann
dfa82a63bf * Correct liberation fonts package name (*2 is available as of stretch) 2018-02-17 21:43:41 +01:00
Erik Huelsmann
9353e8187f * Add fonts missing for xedemo template set 2018-02-17 21:36:25 +01:00
Erik Huelsmann
a1ea9d9895 * Why was curl suddenly gone? Anyway, re-adding 2018-02-14 20:47:55 +01:00
Erik Huelsmann
0f8af754bd * Fix syntax (double &&) which chokes Docker Hub's builds 2018-02-14 20:33:04 +01:00
Erik Huelsmann
da48259b68 Merge pull request #18 from sbts/1.5-dev-enhancement-latest-pg-tools
1.5 - install latest version of `postgresql-client`
2018-02-06 22:17:26 +01:00
sbts
774e6ef6e2 install latest version of postgresql-client
This is required to handle cases where the PG server is running a newer version than this container has available.
Failing to do this update will normally cause odd problems, including silent failure to backup.
Instead of the expected backup an empty file is generated.
Also ensure
- an upgrade
- and some apt cleanup

are done.
2018-02-07 04:05:30 +08:00
Erik Huelsmann
0d8517ebc4 * Update to 1.5.16 2018-01-28 19:56:26 +01:00
Erik Huelsmann
f7cfcc72ec * Add more documentation regarding container mail configuration 2018-01-24 21:55:29 +01:00
Erik Huelsmann
847efed2d0 * Dockerfile update to track the latest 1.5 2018-01-07 22:10:30 +01:00
Erik Huelsmann
9d5b62b6bb * Close #15 for the 1.5-slim branch 2018-01-06 14:16:56 +01:00
Erik Huelsmann
e23e85fea8 * Clean out man pages for smaller image 2018-01-01 11:44:32 +01:00
Erik Huelsmann
c4a1a6f1cc * Fix PostgreSQL installation 2018-01-01 11:27:39 +01:00
Erik Huelsmann
90764650c5 * Fix PostgreSQL installation 2018-01-01 11:15:39 +01:00
Erik Huelsmann
795fdf3f95 * Fix PostgreSQL installation 2018-01-01 11:05:22 +01:00
Erik Huelsmann
6cceef46f6 * Build on the jessie-slim image for a smaller image 2017-12-31 17:53:32 +01:00
Erik Huelsmann
e29aa14d57 * Remove a few layers from the 1.5 images 2017-12-31 17:46:21 +01:00
Erik Huelsmann
a22ed7ac49 * Automatic Dockerfile update by release process 2017-12-08 16:54:59 +00:00
Erik Huelsmann
1f1df000b8 * Sync rewritten README.md from master 2017-10-30 21:45:58 +01:00
Erik Huelsmann
fe867c9925 * Automatic Dockerfile update by release process 2017-10-29 21:39:46 +00:00
Erik Huelsmann
9ff64318ab * In the 'build LedgerSMB' step, don't change directories 2017-09-20 22:22:22 +02:00
Erik Huelsmann
46ae598da0 * Automatic Dockerfile update by release process 2017-09-18 10:27:13 +00:00
Erik Huelsmann
1387c10fd1 * Automatic Dockerfile update by release process 2017-09-12 19:28:31 +00:00
Erik Huelsmann
cbb3a0d843 * Automatic Dockerfile update by release process 2017-09-03 18:55:01 +00:00
Erik Huelsmann
0e41af2b67 * Since the last command removed the lists, update before installation 2017-08-13 20:49:16 +02:00
Erik Huelsmann
a30d23bbb6 * Remove /var/lib/apt/lists/* for further space savings 2017-08-13 20:34:14 +02:00
Erik Huelsmann
e10bd36b80 * Add back USER statement accidentally removed in d038488 2017-08-06 19:50:32 +02:00
Erik Huelsmann
1a56d1523d * Update Dockerfile with performance dependency
As noted by John, requests improve by a factor 10 (20-30secs -> 2-3secs)
with this dependency in place.
2017-08-04 23:39:18 +02:00
Erik Huelsmann
aa260dcec9 * Automatic Dockerfile update by release process 2017-07-22 19:02:34 +00:00
Erik Huelsmann
402f541a5e * Download from download.ledgersmb.org instead of GitHub
(uploading to GitHub doesn't work for non-tagged releases such as betas)
2017-07-20 22:57:48 +02:00
Erik Huelsmann
9499b6ffc1 Merge pull request #13 from sbts/1.5_don't_write_to_server_dir
drop need to write config file to /srv/ledgersmb
2017-07-09 08:39:58 +02:00
sbts
d0384889a8 drop need to write config file to /srv/ledgersmb
Instead write it to /tmp.
Also don't copy the entire example file, just write the bits we need
2017-07-02 01:07:04 +08:00
Erik Huelsmann
2d4bb886f8 * Automatic Dockerfile update by release process 2017-06-25 15:44:29 +00:00
Erik Huelsmann
8e3f80f65f * Remove downloaded tar from the resulting container 2017-06-21 00:23:07 +02:00
Erik Huelsmann
cd29bd895f * Remove more temporary artifacts from the build process 2017-06-21 00:03:36 +02:00
Erik Huelsmann
42e6eb783e * Reorganize commands for slimmer image 2017-06-20 07:59:10 +02:00
Erik Huelsmann
09cf2e16b7 Update Dockerfile for 1.5.7 release 2017-06-01 19:13:22 +02:00
Erik Huelsmann
2a5dff2dd7 * Don't build Dojo on release branches: be download pre-built. 2017-06-01 09:18:00 +02:00
Erik Huelsmann
e2bf781058 * Reduce image size further by changing base image 2017-06-01 08:27:51 +02:00
Erik Huelsmann
1148c219ec * Minimize the size of the image (went from 2.6GB to 1.4GB!) 2017-06-01 08:23:00 +02:00
Erik Huelsmann
e5c6072505 * use '--preload-app' to start starman 2017-05-25 16:07:38 +02:00
Erik Huelsmann
728840ce4c * Update Dockerfile to 1.5.6 2017-04-09 14:44:12 +00:00
John Locke
5f45abdf2d Create /tmp/ledgersmb if not exists 2017-03-14 13:50:53 -07:00
John Locke
8afea54d65 Fix ssmtp update script 2017-03-14 13:41:59 -07:00
John Locke
326790de44 Update postgres client libs to 9.6, fixes ledgersmb/ledgersmb#2686 , older pg_dump aborts when connecting to newer postgres server. 2017-03-14 10:15:01 -07:00
Erik Huelsmann
c4a5359b25 * Update to 1.5.5 2017-03-14 14:08:13 +00:00
John Locke
79be91758b Update README on latest branch. 2017-03-13 15:37:12 -07:00
John Locke
4706963a2b 1.5.4 2017-03-13 13:55:57 -07:00
John Locke
2c22bd6bbb 1.5.3 2017-02-11 07:47:00 -08:00
John Locke
d3897c8439 1.5.2 2017-01-23 06:46:44 -08:00
John Locke
6d4d4fa927 Run as www-data user, with permission to write ledgersmb.conf file.
Fixes #6.
2017-01-14 09:09:37 -08:00
John Locke
8f911b4d3e 1.5.1 2017-01-08 10:59:02 -08:00
John Locke
60af8d5d49 Add LPR package to image 2017-01-05 08:48:46 -08:00
John Locke
2bf51fb145 Try different download mirror 2016-12-30 11:02:21 -08:00
John Locke
6e41334061 Try again to get the correct path 2016-12-30 10:43:19 -08:00
John Locke
f3f924eab9 Update to full release path. 2016-12-30 10:19:47 -08:00
John Locke
e456434514 1.5.0 2016-12-30 09:43:11 -08:00
John Locke
71de84bd9e 1.5.0-rc3 2016-12-12 08:38:25 -08:00
John Locke
262bf6e1f4 Set correct ssmtp path 2016-09-25 10:54:16 -07:00
John Locke
fdd2eed8a6 Fix missing && after downloading tarball 2016-08-21 12:45:49 -07:00
John Locke
76c35fa0d5 1.5.0-rc2 2016-08-20 09:13:33 -07:00
John Locke
dc0770e367 1.5.0-rc2 2016-08-20 09:02:15 -07:00
John Locke
3839f3b105 Add support for #4 - Make Postgres port configurable at run time 2016-08-20 08:56:41 -07:00
John Locke
9839ceaa2b Add new libmoosex-nonmoose-perl dependency 2016-05-30 08:58:36 -07:00
John Locke
48f1e0d7bb 1.5 Dockerfile to install from tarball 2016-05-30 00:23:58 -07:00
5 changed files with 120 additions and 208 deletions

View File

@@ -1,11 +1,13 @@
# Build time variables
ARG SRCIMAGE=debian:trixie-slim
ARG SRCIMAGE=debian:stretch-slim
FROM $SRCIMAGE AS builder
ENV LSMB_VERSION=master
ARG LSMB_VERSION="1.7.40"
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 ; \
@@ -15,9 +17,10 @@ RUN set -x ; \
apt-file update
RUN set -x ; \
cd /srv && \
git clone --depth 1 --recursive -b $LSMB_VERSION https://github.com/ledgersmb/LedgerSMB.git ledgersmb && \
cd ledgersmb && \
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 ; \
@@ -38,97 +41,93 @@ RUN set -x ; \
FROM $SRCIMAGE
LABEL org.opencontainers.image.authors="LedgerSMB project <devel@lists.ledgersmb.org>"
# Install Perl, Tex, Starman, psql client, and all dependencies
#
# Without libclass-c3-xs-perl, everything grinds to a halt;
# add it, because it's a 'recommends' it the dep tree, which
# we're skipping, normally
#
# 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
COPY --from=builder /srv/derived-deps /tmp/derived-deps
RUN set -x ; \
echo "APT::Install-Recommends \"false\";\nAPT::Install-Suggests \"false\";\n" > /etc/apt/apt.conf.d/00recommends && \
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 \
texlive-xetex fonts-liberation \
lsb-release && \
echo "deb [signed-by=/etc/apt/keyrings/postgresql.asc] 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 > /etc/apt/keyrings/postgresql.asc && \
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install postgresql-client && \
DEBIAN_FRONTEND="noninteractive" apt-get -y autoremove && \
DEBIAN_FRONTEND="noninteractive" apt-get -y autoclean && \
rm -rf /var/lib/apt/lists/*
MAINTAINER Freelock john@freelock.com
# Build time variables
ENV LSMB_VERSION=master
ENV NODE_PATH=/usr/local/lib/node_modules
ARG LSMB_VERSION="1.7.40"
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...
# 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
###########################################################
# Java & Nodejs for doing Dojo build
COPY --from=builder /srv/derived-deps /tmp/derived-deps
# These packages are only needed during the dojo build
ENV DOJO_Build_Deps="git make gcc libperl-dev curl nodejs npm cpanminus"
# These packages can be removed after the dojo build
ENV DOJO_Build_Deps_removal="${DOJO_Build_Deps} nodejs npm cpanminus"
RUN set -x ; \
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 -q && \
DEBIAN_FRONTEND="noninteractive" apt-get dist-upgrade -y -q && \
DEBIAN_FRONTEND="noninteractive" apt-get -y -q install \
wget ca-certificates gnupg \
$( cat /tmp/derived-deps ) \
libclass-c3-xs-perl libclass-accessor-lite-perl \
texlive-latex-recommended texlive-fonts-recommended \
texlive-xetex fonts-liberation \
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 -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 "$ARTIFACT_LOCATION" && \
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/*
# RUN (wget --quiet -O - https://deb.nodesource.com/setup_22.x | bash -) && \
RUN DEBIAN_FRONTEND="noninteractive" apt-get -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install ${DOJO_Build_Deps} && \
npm i -g --no-save yarn && \
cd /srv && \
git clone --depth 1 --recursive -b $LSMB_VERSION https://github.com/ledgersmb/LedgerSMB.git ledgersmb && \
cd ledgersmb && \
cpanm --metacpan --quiet --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \
--with-feature=openoffice \
--installdeps . && \
make js && \
DEBIAN_FRONTEND="noninteractive" apt-get -y purge ${DOJO_Build_Deps_removal} && \
rm -rf /usr/local/lib/node_modules && \
DEBIAN_FRONTEND="noninteractive" apt-get -y autoremove && \
DEBIAN_FRONTEND="noninteractive" apt-get -y autoclean && \
rm -rf ~/.cpanm && \
rm -rf /var/lib/apt/lists/*
# Cleanup args that are for internal use
ENV DOJO_Build_Deps=
ENV DOJO_Build_Deps_removal=
ENV NODE_PATH=
WORKDIR /srv/ledgersmb
# master requirements
# Configure outgoing mail to use host, other run time variable defaults
## MAIL
ENV LSMB_MAIL_SMTPHOST=172.17.0.1
#ENV LSMB_MAIL_SMTPPORT=25
#ENV LSMB_MAIL_SMTPSENDER_HOSTNAME=(container hostname)
#ENV LSMB_MAIL_SMTPTLS=
#ENV LSMB_MAIL_SMTPUSER=
#ENV LSMB_MAIL_SMTPPASS=
#ENV LSMB_MAIL_SMTPAUTHMECH=
## sSMTP
ENV SSMTP_ROOT ar@example.com
ENV SSMTP_MAILHUB 172.17.0.1
ENV SSMTP_HOSTNAME 172.17.0.1
#ENV SSMTP_USE_STARTTLS
#ENV SSMTP_AUTH_USER
#ENV SSMTP_AUTH_PASS
ENV SSMTP_FROMLINE_OVERRIDE YES
#ENV SSMTP_AUTH_METHOD
ENV POSTGRES_HOST=postgres
ENV POSTGRES_PORT=5432
ENV DEFAULT_DB=lsmb
ENV POSTGRES_HOST postgres
ENV POSTGRES_PORT 5432
ENV DEFAULT_DB lsmb
COPY start.sh /usr/local/bin/start.sh
COPY update_ssmtp.sh /usr/local/bin/update_ssmtp.sh
RUN chmod +x /usr/local/bin/start.sh && \
mkdir -p /var/www
RUN chown www-data /etc/ssmtp /etc/ssmtp/ssmtp.conf && \
chmod +x /usr/local/bin/update_ssmtp.sh /usr/local/bin/start.sh && \
mkdir -p /var/www
# Work around an aufs bug related to directory permissions:
RUN mkdir -p /tmp && \

View File

@@ -4,16 +4,11 @@ Dockerfile for LedgerSMB Docker image
# Supported tags
- `1.13`, `1.13.x`, `latest` - Latest official release from the 1.13 branch
- `1.12`, `1.12.x` - Latest official release from the 1.12 branch
- `1.11`, `1.11.x` - Latest official release from the 1.11 branch
- `1.10`, `1.10.38` - Last official release from the 1.10 branch
- `1.9`, `1.9.30` - Last official release from 1.9 branch (End-of-Life)
- `1.8`, `1.8.31` - Last official release from 1.8 branch (End-of-Life)
- `1.7`, `1.7.41` - Last official release from 1.7 branch (End-of-Life)
- `1.6`, `1.6.33` - Last official release from 1.6 branch (End-of-Life)
- `1.5`, `1.5.30` - Last official release from 1.5 branch (End-of-Life)
- `1.4`, `1.4.42` - Last official release from 1.4 branch (End-of-Life)
- `1.8` - Preview version for the 1.8 branch
- `1.7`, `1.7.x`, `latest` - 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
- `1.4`, `1.4.42` - Last official release from 1.4 branch
- `master` - Master branch from git, unstable
Containers supporting the development process are provided
@@ -34,9 +29,9 @@ This image is designed to be used in conjunction with a running PostgreSQL
instance (such as may be provided through a separate image).
This image exposes port 5762 running a Starman HTTP application server. We
do not recommend exposing this port publicly, because
do recommend not exposing this port publicly, because
1. The Starman author recommends it
1. The Starman author recommends not exposing it
2. We strongly recommend TLS encryption of all application traffic
While the exposed port can be used for quick evaluation, it's recommended
@@ -48,10 +43,7 @@ could require additional setup of a mail service or CUPS printer service.
# How to use this image
This image can be installed either automatically with the Docker compose file
manually with docker only.
❌ Do not use unofficial or AI-generated Docker Compose examples. These are
often incomplete, break silently, or skip required services.
or manually with docker only.
## Docker-Compose installation and start
@@ -78,6 +70,9 @@ The database username and password are:
password: abc
```
From here, follow the steps as detailed in the instructions for
[preparing for first use](https://ledgersmb.org/content/preparing-ledgersmb-17-first-use).
## Manual installation
This section assumes availability of a PostgreSQL server to attach to the

View File

@@ -16,7 +16,7 @@ services:
# because that allows us to use the default hostname ("postgres")
# from the LedgerSMB configuration
postgres:
image: postgres:14-alpine
image: postgres:9.6-alpine
environment:
# Replace the password below for a secure setup
POSTGRES_PASSWORD: abc
@@ -28,18 +28,12 @@ services:
lsmb:
depends_on:
- postgres
image: ghcr.io/ledgersmb/ledgersmb:master
image: ghcr.io/ledgersmb/ledgersmb:1.7
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"
ports:
- "127.0.0.1:5762:5762"
environment:
# The LSMB_WORKERS environment variable lets you select the number
# of processes serving HTTP requests. The default number of 2 workers

108
start.sh
View File

@@ -1,85 +1,8 @@
#!/bin/bash
update_ssmtp.sh
cd /srv/ledgersmb
if [[ -n "$SSMTP_ROOT" ]]; then
echo "\$SSMTP_ROOT set; parameter is deprecated and will be ignored"
LSMB_HAVE_DEPRECATED=1
fi
if [[ -n "$SSMTP_FROMLINE_OVERRIDE" ]]; then
echo "\$SSMTP_FROMLINE_OVERRIDE set; parameter is deprecated and will be ignored"
LSMB_HAVE_DEPRECATED=1
fi
if [[ -n "$SSMTP_MAILHUB" ]]; then
echo "\$SSMTP_MAILHUB set; parameter is deprecated"
if [[ -z "$LSMB_MAIL_SMTPHOST" ]]; then
echo " Deriving \$LSMB_MAIL_SMTPHOST setting from \$SSMTP_MAILHUB"
LSMB_MAIL_SMTPHOST=${SSMTP_MAILHUB%:*}
fi
if [[ -z "$LSMB_MAIL_SMTPPORT" ]]; then
echo " Deriving \$LSMB_MAIL_SMTPPORT setting from \$SSMTP_MAILHUB"
LSMB_MAIL_SMTPPORT=${SSMTP_MAILHUB#*:}
fi
LSMB_HAVE_DEPRECATED=1
fi
if [[ -n "$SSMTP_HOSTNAME" ]]; then
echo "\$SSMTP_HOSTNAME set; parameter is deprecated"
if [[ -z "$LSMB_MAIL_SMTPSENDER_HOSTNAME" ]]; then
echo " Deriving \$LSMB_MAIL_SMTPSENDER_HOSTNAME setting from \$SSMTP_HOSTNAME"
LSMB_MAIL_SMTPSENDER_HOSTNAME=$SSMTP_HOSTNAME
fi
LSMB_HAVE_DEPRECATED=1
fi
if [[ -n "$SSMTP_USE_STARTTLS" ]]; then
echo "\$SSMTP_USE_STARTTLS set; parameter is deprecated"
if [[ -z "$LSMB_MAIL_SMTPTLS" ]]; then
echo " Deriving \$LSMB_MAIL_SMTPSENDER_HOSTNAME setting from \$SSMTP_USE_STARTTLS"
LSMB_MAIL_SMTPTLS=$SSMTP_USE_STARTTLS
fi
LSMB_HAVE_DEPRECATED=1
fi
if [[ -n "$SSMTP_AUTH_USER" ]]; then
echo "\$SSMTP_AUTH_USER set; parameter is deprecated"
if [[ -z "$LSMB_MAIL_SMTPUSER" ]]; then
echo " Deriving \$LSMB_MAIL_SMTPUSER setting from \$SSMTP_AUTH_USER"
LSMB_MAIL_SMTPUSER=$SSMTP_AUTH_USER
fi
LSMB_HAVE_DEPRECATED=1
fi
if [[ -n "$SSMTP_AUTH_PASS" ]]; then
echo "\$SSMTP_AUTH_PASS set; parameter is deprecated"
if [[ -z "$LSMB_MAIL_SMTPPASS" ]]; then
echo " Deriving \$LSMB_MAIL_SMTPPASS setting from \$SSMTP_AUTH_PASS"
LSMB_MAIL_SMTPPASS=$SSMTP_AUTH_PASS
fi
LSMB_HAVE_DEPRECATED=1
fi
if [[ -n "$SSMTP_AUTH_METHOD" ]]; then
echo "\$SSMTP_AUTH_METHOD set; parameter is deprecated"
if [[ -z "$LSMB_MAIL_SMTPAUTHMECH" ]]; then
echo " Deriving \$LSMB_MAIL_SMTPAUTHMECH setting from \$SSMTP_AUTH_METHOD"
LSMB_MAIL_SMTPAUTHMECH=$SSMTP_AUTH_METHOD
fi
LSMB_HAVE_DEPRECATED=1
fi
if [[ -n "$LSMB_HAVE_DEPRECATED" ]]; then
echo "!!! DEPRECATED \$SSMTP_* PARAMETERS WILL BE REMOVED in the 1.9 image!!!"
fi
# This was never a parameter: ?
# if [[ -n "$SSMTP_USE_TLS" ]]; then
# echo "\$SSMTP_USE_TLS set; parameter is deprecated"
# if [[ -z "$LSMB_MAIL_SMTPTLS" ]]; then
# echo " Deriving \$LSMB_MAIL_SMTPSENDER_HOSTNAME setting from \$SSMTP_MAILHUB"
# if [[ "$SSMTP_USE_TLS" == "yes" ]]; then
# LSMB_MAIL_SMTPTLS=raw
# else
# LSMB_MAIL_SMTPTLS=no
# fi
# fi
# fi
if [[ ! -f ledgersmb.conf ]]; then
cat <<EOF >/tmp/ledgersmb.conf
[main]
@@ -91,14 +14,7 @@ port = $POSTGRES_PORT
default_db = $DEFAULT_DB
[mail]
${LSMB_MAIL_SMTPHOST:+smtphost=$LSMB_MAIL_SMTPHOST
}${LSMB_MAIL_SMTPPORT:+smtpport=$LSMB_MAIL_SMTPPORT
}${LSMB_MAIL_SMTPSENDER_HOSTNAME:+smtpsender_hostname=$LSMB_MAIL_SMTPSENDER_HOSTNAME
}${LSMB_MAIL_SMTPTLS:+smtptls=$LSMB_MAIL_SMTPTLS
}${LSMB_MAIL_SMTPUSER:+smtpuser=$LSMB_MAIL_SMTPUSER
}${LSMB_MAIL_SMTPPASS:+smtppass=$LSMB_MAIL_SMTPPASS
}${LSMB_MAIL_SMTPAUTHMECH:+smtpauthmech=$LSMB_MAIL_SMTPAUTHMECH
}
sendmail = /usr/sbin/ssmtp
[proxy]
ip=${PROXY_IP:-172.17.0.1/12}
@@ -106,24 +22,14 @@ EOF
export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf'
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
if [ ! -d "/tmp/ledgersmb" ]; then
mkdir -p /tmp/ledgersmb
fi
# start ledgersmb
# --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
echo '--------- LEDGERSMB CONFIGURATION: ledgersmb.conf'
cat ${LSMB_CONFIG_FILE:-ledgersmb.conf}
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} \
-I lib -I old/lib \
--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

18
update_ssmtp.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
ConfiguredComment='# install script update_ssmtp.sh has configured ssmtp'
grep -qc "$ConfiguredComment" /etc/ssmtp/ssmtp.conf && {
echo "smtp configured."
exit
}
sed -i \
-e "s/\(root=\).*\$/\1$SSMTP_ROOT/g" \
-e "s/\(mailhub=\).*\$/\1$SSMTP_MAILHUB/g" \
-e "s/\(hostname=\).*\$/\1$SSMTP_HOSTNAME/g" \
/etc/ssmtp/ssmtp.conf
[ -z "$SSMTP_USE_STARTTLS" ] || echo "UseSTARTTLS=$SSMTP_USE_STARTTLS" >> /etc/ssmtp/ssmtp.conf
[ -z "$SSMTP_AUTH_USER" ] || echo "AuthUser=$SSMTP_AUTH_USER" >> /etc/ssmtp/ssmtp.conf
[ -z "$SSMTP_AUTH_PASS" ] || echo "AuthPass=$SSMTP_AUTH_PASS" >> /etc/ssmtp/ssmtp.conf
[ -z "$SSMTP_AUTH_METHOD" ] || echo "AuthMethod=$SSMTP_AUTH_METHOD" >> /etc/ssmtp/ssmtp.conf
[ -z "$SSMTP_FROMLINE_OVERRIDE" ] || echo "FromLineOverride=$SSMTP_FROMLINE_OVERRIDE" >> /etc/ssmtp/ssmtp.conf
echo "$ConfiguredComment" >> /etc/ssmtp/ssmtp.conf