Compare commits

..

32 Commits

Author SHA1 Message Date
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
4 changed files with 75 additions and 38 deletions

View File

@@ -1,43 +1,56 @@
FROM perl:5 FROM debian:jessie
MAINTAINER Freelock john@freelock.com MAINTAINER Freelock john@freelock.com
RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >> /etc/apt/apt.conf
ENV DEBIAN_FRONTEND=noninteractive
# Install Perl, Tex, Starman, psql client, and all dependencies # Install Perl, Tex, Starman, psql client, and all dependencies
RUN DEBIAN_FRONTENT=noninteractive && \ RUN apt-get update && apt-get dist-upgrade -y && apt-get -y install \
apt-get update && apt-get -y install \ 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 \ libfile-mimeinfo-perl libjson-xs-perl libjson-perl \
libfile-mimeinfo-perl libjson-xs-perl libjson-perl \ liblocale-maketext-perl liblocale-maketext-lexicon-perl \
liblocale-maketext-perl liblocale-maketext-lexicon-perl \ liblog-log4perl-perl libmime-base64-perl libmime-lite-perl \
liblog-log4perl-perl libmime-base64-perl libmime-lite-perl \ libmath-bigint-gmp-perl libmoose-perl libnumber-format-perl \
libmath-bigint-gmp-perl libmoose-perl libnumber-format-perl \ libpgobject-perl libpgobject-simple-perl libpgobject-simple-role-perl \
libpgobject-perl libpgobject-simple-perl libpgobject-simple-role-perl \ libpgobject-util-dbmethod-perl libplack-perl libtemplate-perl \
libpgobject-util-dbmethod-perl libplack-perl libtemplate-perl \ libnamespace-autoclean-perl \
libnamespace-autoclean-perl \ libtemplate-plugin-latex-perl libtex-encode-perl \
libtemplate-plugin-latex-perl libtex-encode-perl \ libmoosex-nonmoose-perl \
texlive-latex-recommended \ texlive-latex-recommended \
texlive-xetex \ texlive-xetex \
starman \ starman \
libopenoffice-oodoc-perl \ libopenoffice-oodoc-perl \
postgresql-client \ postgresql-client \
ssmtp ssmtp \
lsb-release
# Build time variables # Build time variables
ENV LSMB_VERSION 1.5.0-beta6 ENV LSMB_VERSION 1.5.8
# Install LedgerSMB # Install LedgerSMB
RUN cd /srv && \ RUN apt-get -y install git cpanminus make gcc libperl-dev && \
curl -Lo ledgersmb-$LSMB_VERSION.tar.gz https://sourceforge.net/projects/ledger-smb/files/Releases/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz/download && \ cd /srv && \
tar -xvzf ledgersmb-$LSMB_VERSION.tar.gz curl -Lo ledgersmb-$LSMB_VERSION.tar.gz "https://github.com/ledgersmb/LedgerSMB/releases/download/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" && \
tar -xvzf ledgersmb-$LSMB_VERSION.tar.gz && \
rm -f ledgersmb-$LSMB_VERSION.tar.gz && \
cd ledgersmb && \
cpanm --quiet --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \
--with-feature=openoffice \
--installdeps . && \
apt-get purge -y git cpanminus make gcc libperl-dev && \
apt-get autoremove -y && \
apt-get autoclean && \
rm -rf ~/.cpanm/
WORKDIR /srv/ledgersmb WORKDIR /srv/ledgersmb
# 1.5 requirements # master requirements
RUN cpanm --quiet --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \
--with-feature=openoffice \
--installdeps .
# Configure outgoing mail to use host, other run time variable defaults # Configure outgoing mail to use host, other run time variable defaults
@@ -52,6 +65,8 @@ ENV SSMTP_FROMLINE_OVERRIDE YES
#ENV SSMTP_AUTH_METHOD #ENV SSMTP_AUTH_METHOD
ENV POSTGRES_HOST postgres ENV POSTGRES_HOST postgres
ENV POSTGRES_PORT 5432
ENV DEFAULT_DB lsmb
COPY start.sh /usr/local/bin/start.sh COPY start.sh /usr/local/bin/start.sh
COPY update_ssmtp.sh /usr/local/bin/update_ssmtp.sh COPY update_ssmtp.sh /usr/local/bin/update_ssmtp.sh
@@ -60,9 +75,14 @@ RUN chown www-data /etc/ssmtp /etc/ssmtp/ssmtp.conf && \
chmod +x /usr/local/bin/update_ssmtp.sh /usr/local/bin/start.sh && \ chmod +x /usr/local/bin/update_ssmtp.sh /usr/local/bin/start.sh && \
mkdir -p /var/www mkdir -p /var/www
# Work around an aufs bug related to directory permissions:
RUN mkdir -p /tmp && \
chmod 1777 /tmp
# Internal Port Expose # Internal Port Expose
EXPOSE 5762 EXPOSE 5762
#USER www-data # If ledgersmb.conf does not exist, www-data user needs to be able to create it.
RUN chown www-data /srv/ledgersmb
USER www-data
CMD ["start.sh"] CMD ["start.sh"]

View File

@@ -1,13 +1,14 @@
# ledgersmb-docker - EXPERIMENTAL # ledgersmb-docker
Dockerfile for LedgerSMB Docker image Dockerfile for LedgerSMB Docker image
This is a work in progress to make a docker image for running LedgerSMB. It should not be relied upon for production use! This is a work in progress to make a docker image for running LedgerSMB. It should not be relied upon for production use!
# Supported tags and respective `Dockerfile` links # Supported tags and respective `Dockerfile` links
- `dev-master` - Master branch from git, unstable - `1.5.x`, `latest` - 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`, `latest` - Latest tagged release of git 1.4 branch - `dev-master` - Master (1.6) branch from git, unstable, updated only on demand
- `1.5` - Develop HEAD of 1.5 branch, updated only on demand
# What is LedgerSMB? # What is LedgerSMB?
@@ -62,6 +63,14 @@ This environment variable is used to specify the hostname of the Postgres server
If you set this to another hostname, LedgerSMB will attempt to connect to that hostname instead. If you set this to another hostname, LedgerSMB will attempt to connect to that hostname instead.
## `POSTGRES_PORT` = 5432
Port to connect to Postgres on. Use to connect to a Postgres server running on an alternate port.
## `DEFAULT_DB` = lsmb
Set this if you want to automatically log in to a particular LSMB database.
### `SSMTP_ROOT` `SSMTP_MAILHUB` `SSMTP_HOSTNAME` `SSMTP_USE_STARTTLS` `SSMTP_AUTH_USER` `SSMTP_AUTH_PASS` `SSMTP_METHOD` `SSMTP_FROMLINE_OVERRIDE` ### `SSMTP_ROOT` `SSMTP_MAILHUB` `SSMTP_HOSTNAME` `SSMTP_USE_STARTTLS` `SSMTP_AUTH_USER` `SSMTP_AUTH_PASS` `SSMTP_METHOD` `SSMTP_FROMLINE_OVERRIDE`
These variables are used to set outgoing SMTP defaults. To set the outgoing email address, set SSMTP_ROOT, and SSMTP_HOSTNAME at a minimum -- SSMTP_MAILHUB defaults to the default docker0 interface, so if your host is already configured to relay mail, this should relay successfully with only those two set. These variables are used to set outgoing SMTP defaults. To set the outgoing email address, set SSMTP_ROOT, and SSMTP_HOSTNAME at a minimum -- SSMTP_MAILHUB defaults to the default docker0 interface, so if your host is already configured to relay mail, this should relay successfully with only those two set.

View File

@@ -8,10 +8,15 @@ if [[ ! -f ledgersmb.conf ]]; then
sed -i \ sed -i \
-e "s/\(cache_templates = \).*\$/cache_templates = 1/g" \ -e "s/\(cache_templates = \).*\$/cache_templates = 1/g" \
-e "s/\(host = \).*\$/\1$POSTGRES_HOST/g" \ -e "s/\(host = \).*\$/\1$POSTGRES_HOST/g" \
-e "s%\(sendmail = \).*%\1/usr/bin/ssmtp%g" \ -e "s/\(port = \).*\$/\1$POSTGRES_PORT/g" \
-e "s/\(default_db = \).*\$/\1$DEFAULT_DB/g" \
-e "s%\(sendmail = \).*%\1/usr/sbin/ssmtp%g" \
/srv/ledgersmb/ledgersmb.conf /srv/ledgersmb/ledgersmb.conf
fi fi
if [ ! -f "/tmp/ledgersmb" ]; then
mkdir /tmp/ledgersmb
fi
# Currently unmaintained/untested # Currently unmaintained/untested
# if [ ! -z ${CREATE_DATABASE+x} ]; then # if [ ! -z ${CREATE_DATABASE+x} ]; then
# perl tools/dbsetup.pl --company $CREATE_DATABASE \ # perl tools/dbsetup.pl --company $CREATE_DATABASE \
@@ -30,4 +35,7 @@ done ;
echo "Selected PERL5LIB=$PERL5LIB"; echo "Selected PERL5LIB=$PERL5LIB";
# start ledgersmb # start ledgersmb
exec starman --port 5762 tools/starman.psgi # --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

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
ConfiguredComment='# install script update_ssmtp.sh has configured ssmtp' ConfiguredComment='# install script update_ssmtp.sh has configured ssmtp'
grep -qc "$ConfiguredComment" /etc/ssmtp.conf && { grep -qc "$ConfiguredComment" /etc/ssmtp/ssmtp.conf && {
echo "smtp configured." echo "smtp configured."
exit exit
} }