Compare commits

...

4 Commits

Author SHA1 Message Date
John Locke
48f1e0d7bb 1.5 Dockerfile to install from tarball 2016-05-30 00:23:58 -07:00
John Locke
f070b9d6a6 Updates for new dojo build requirements for 1.5/master 2016-05-29 22:32:31 -07:00
John Locke
867f5674f9 Major install changes nearing the 1.5 release candidates 2016-05-14 14:20:54 -07:00
John Locke
7d63b16512 Add LaTeX::Driver to image. 2016-05-03 10:14:33 -07:00
3 changed files with 42 additions and 67 deletions

View File

@@ -4,61 +4,47 @@ MAINTAINER Freelock john@freelock.com
# Install Perl, Tex, Starman, psql client, and all dependencies
RUN DEBIAN_FRONTENT=noninteractive && \
apt-get update && apt-get -y install \
git \
libdatetime-perl libdbi-perl libdbd-pg-perl \
libcgi-simple-perl libtemplate-perl libmime-lite-perl \
liblocale-maketext-lexicon-perl libtest-exception-perl \
libtest-trap-perl liblog-log4perl-perl libmath-bigint-gmp-perl \
libfile-mimeinfo-perl libtemplate-plugin-number-format-perl \
libdatetime-format-strptime-perl libconfig-general-perl \
libdatetime-format-strptime-perl libio-stringy-perl libmoose-perl \
libconfig-inifiles-perl libnamespace-autoclean-perl \
libcarp-always-perl libjson-perl \
libtemplate-plugin-latex-perl texlive-latex-recommended \
libnet-tclink-perl \
libxml-twig-perl \
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 \
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 \
libpgobject-perl libpgobject-simple-perl libpgobject-simple-role-perl \
libpgobject-util-dbmethod-perl libplack-perl libtemplate-perl \
libnamespace-autoclean-perl \
libtemplate-plugin-latex-perl libtex-encode-perl \
texlive-latex-recommended \
texlive-xetex \
starman \
postgresql-client-9.4 \
libopenoffice-oodoc-perl \
postgresql-client \
ssmtp
# 1.5 requirements
RUN apt-get install -y \
libpgobject-perl \
libpgobject-simple-perl \
libpgobject-simple-role-perl \
libpgobject-util-dbmethod-perl \
&& cpanm -nq \
Carton \
PGObject::Type::BigFloat \
PGObject::Composite \
PGObject::Type::JSON \
PGObject::Type::Composite \
PGObject::Type::DateTime \
App::LedgerSMB::Admin
# Build time variables
ENV LSMB_VERSION 1.5.0-beta4
ENV LSMB_VERSION 1.5.0-beta6
# Install LedgerSMB
RUN cd /srv && \
git clone https://github.com/ledgersmb/LedgerSMB.git ledgersmb
curl -Lo ledgersmb-$LSMB_VERSION.tar.gz https://sourceforge.net/projects/ledger-smb/files/Releases/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz/download && \
tar -xvzf ledgersmb-$LSMB_VERSION.tar.gz
WORKDIR /srv/ledgersmb
RUN git checkout $LSMB_VERSION
#RUN sed -i \
# -e "s/short_open_tag = Off/short_open_tag = On/g" \
# -e "s/post_max_size = 8M/post_max_size = 20M/g" \
# -e "s!^;sendmail_path =.*\$!sendmail_path = /usr/sbin/ssmtp -t!g" \
# /etc/php5/fpm/php.ini && \
# 1.5 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
## sSMTP
ENV SSMTP_ROOT ar@example.com
ENV SSMTP_MAILHUB 172.17.42.1
ENV SSMTP_HOSTNAME 172.17.42.1
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
@@ -74,12 +60,9 @@ 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
# Not sure why this is not set correctly, and also why
# it gets overridden here -- moved to start.sh.
# ENV PERL5LIB /usr/local/lib/perl5/site_perl/5.22.0
# Internal Port Expose
EXPOSE 5000
EXPOSE 5762
#USER www-data
CMD ["start.sh"]

View File

@@ -5,9 +5,9 @@ This is a work in progress to make a docker image for running LedgerSMB. It shou
# Supported tags and respective `Dockerfile` links
- `1.5`, `dev-master` - Master branch, unstable
- `1.4`, `latest` - Tip of git 1.4 branch
- `1.3` - Latest 1.3.x release
- `dev-master` - Master branch from git, unstable
- `1.5`, `1.5.x` - Latest release tarball from 1.5 branch
- `1.4`, `latest` - Latest tagged release of git 1.4 branch
# What is LedgerSMB?
@@ -18,7 +18,7 @@ The LedgerSMB project's priority is to provide an extremely capable yet user-fri
This Docker image is built to provide a self-contained LedgerSMB instance. To be functional, you need to connect it to a running Postgres installation. The official Postgres container will work as is, if you link it to the LedgerSMB instance at startup, or you can provide environment variables to an appropriate Postgres server.
LedgerSMB provides an http interface built on Starman out of the box, listening on port 5000. We do not recommend exposing this port, because we strongly recommend encrypting all connections using SSL/TLS. For production use, we recommend running a web server configured with SSL, such as Nginx or Apache, and proxying connections to LedgerSMB.
LedgerSMB provides an http interface built on Starman out of the box, listening on port 5762. We do not recommend exposing this port, because we strongly recommend encrypting all connections using SSL/TLS. For production use, we recommend running a web server configured with SSL, such as Nginx or Apache, and proxying connections to LedgerSMB.
The other services you will need to put this in production are an SMTP gateway (set environment variables for SSMTP at container startup) and optionally a local print server (e.g. CUPS) installation. The print service is not currently supported in this Docker image, but pull requests are welcomed ;-)
@@ -40,13 +40,13 @@ This image includes `EXPOSE 5432` (the postgres port), so standard container lin
## Set up LedgerSMB
Visit http://myledger:5000/setup.pl (you can forward port 5000 to the host machine, or lookup the IP address for the "myledger" container if running on localhost)
Visit http://myledger:5762/setup.pl (you can forward port 5762 to the host machine, or lookup the IP address for the "myledger" container if running on localhost)
Log in with the "postgres" user and the password you set when starting up the Postgres container, and provide the name of a company database you want to create.
Once you have completed the setup, you have a fully functional LedgerSMB instance running!
Visit http://localhost:5000/login.pl to log in and get started.
Visit http://myledger:5762/login.pl to log in and get started.
# Updating the LedgerSMB container
@@ -68,12 +68,6 @@ These variables are used to set outgoing SMTP defaults. To set the outgoing emai
Use the other environment variables to relay mail through another host.
### `CREATE_DATABASE` `POSTGRES_PASS`
If `CREATE_DATABASE` is set, the tools/dbsetup.pl is called with the database name, and the postgres host and password. Currently this is failing with 'Can't locate object method "process_roles" via package "LedgerSMB::Database" at tools/dbsetup.pl line 203.'
Once this is working, this will provision a new database in the existing server. After the first run, we recommend stopping/removing the LedgerSMB container and starting a new one without these variables -- the previous database should remain present.
# Troubleshooting/Developing
You can connect to a running container using:
@@ -87,7 +81,7 @@ Currently the LedgerSMB installation is in /srv/ledgersmb, and the startup/confi
# Supported Docker versions
This image is officially supported on Docker version 1.7.0.
This image is officially supported on Docker version 1.11.1.
Support for older versions is provided on a best-effort basis.
@@ -101,11 +95,8 @@ This is a brand new effort, and we will be adding documentation to the http://le
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).
You can also reach some of the official LedgerSMB maintainers via the `#ledgersmb` IRC channel on [Freenode](https://freenode.net).
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 [Vector.im](https://vector.im/beta/#/room/#ledgersmb:matrix.org) Matrix client is highly recommended.
1.4/latest: CREATE_DATABASE env variable currently does not provision a test company.
1.5/dev-master: Currently no way to get a working database. Bugs are filed, blocking 3 different approaches: New database, Upgrade from 1.4, Test company
## Contributing

View File

@@ -12,11 +12,12 @@ if [[ ! -f ledgersmb.conf ]]; then
/srv/ledgersmb/ledgersmb.conf
fi
if [ ! -z ${CREATE_DATABASE+x} ]; then
perl tools/dbsetup.pl --company $CREATE_DATABASE \
--host $POSTGRES_HOST \
--postgres_password "$POSTGRES_PASS"
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
@@ -29,4 +30,4 @@ done ;
echo "Selected PERL5LIB=$PERL5LIB";
# start ledgersmb
exec starman tools/starman.psgi
exec starman --port 5762 tools/starman.psgi