Sign inSign up

freakybytes/docker-invoiceplane

By freakybytes

•Updated almost 8 years ago

Docker container image for InvoicePlane.

Image
0

238

freakybytes/docker-invoiceplane repository overview

Docker Repository on Quay.io

⁠sameersbn/invoiceplane:1.5.9-1

⁠Introduction

Dockerfile to create a Docker⁠ container image for InvoicePlane⁠.

InvoicePlane is a self-hosted open source application for managing your quotes, invoices, clients and payments.

⁠Contributing

If you find this image useful here's how you can help:

  • Send a pull request with your awesome features and bug fixes
  • Help users resolve their issues⁠.
  • Support the development of this image with a donation⁠

⁠Issues

Before reporting your issue please try updating Docker to the latest version and check if it resolves the issue. Refer to the Docker installation guide⁠ for instructions.

SELinux users should try disabling SELinux using the command setenforce 0 to see if it resolves the issue.

If the above recommendations do not help then report your issue⁠ along with the following information:

  • Output of the docker version and docker info commands
  • The docker run command or docker-compose.yml used to start the image. Mask out the sensitive bits.
  • Please state if you are using Boot2Docker⁠, VirtualBox⁠, etc.

⁠Getting started

⁠Installation

Automated builds of the image are available on Dockerhub⁠ and is the recommended method of installation.

Note: Builds are also available on Quay.io⁠

docker pull sameersbn/invoiceplane:1.5.9-1

Alternatively you can build the image yourself.

docker build -t sameersbn/invoiceplane github.com/sameersbn/docker-invoiceplane

⁠Quickstart

The quickest way to start using this image is with docker-compose⁠.

wget https://raw.githubusercontent.com/sameersbn/docker-invoiceplane/master/docker-compose.yml

Update the INVOICEPLANE_URL environment variable in the docker-compose.yml file with the url from which InvoicePlane will be externally accessible.

docker-compose up

Alternatively, you can start InvoicePlane manually using the Docker command line.

Step 1. Launch a MySQL container

docker run --name invoiceplane-mysql -itd --restart=always \
  --env 'DB_NAME=invoiceplane_db' \
  --env 'DB_USER=invoiceplane' --env 'DB_PASS=password' \
  --volume /srv/docker/invoiceplane/mysql:/var/lib/mysql \
  sameersbn/mysql:5.7.22-1

Step 2. Launch the InvoicePlane php-fpm container

docker run --name invoiceplane -itd --restart=always \
  --link invoiceplane-mysql:mysql \
  --env 'INVOICEPLANE_FQDN=invoice.example.com' \
  --env 'INVOICEPLANE_TIMEZONE=Asia/Kolkata' \
  --volume /srv/docker/invoiceplane/invoiceplane:/var/lib/invoiceplane \
  sameersbn/invoiceplane:1.5.9-1 app:invoiceplane

Step 3. Launch a NGINX frontend container

docker run --name invoiceplane-nginx -itd --restart=always \
  --link invoiceplane:php-fpm \
  --volumes-from invoiceplane \
  --publish 10080:80 \
  sameersbn/invoiceplane:1.5.9-1 app:nginx

Point your browser to http://invoice.example.com:10080/setup⁠ to complete the setup.

⁠Persistence

For InvoicePlane to preserve its state across container shutdown and startup you should mount a volume at /var/lib/invoiceplane.

The Quickstart⁠ command already mounts a volume for persistence.

SELinux users should update the security context of the host mountpoint so that it plays nicely with Docker:

mkdir -p /srv/docker/invoiceplane
chcon -Rt svirt_sandbox_file_t /srv/docker/invoiceplane

⁠Maintenance

⁠Creating backups

The image allows users to create backups of the InvoicePlane installation using the app:backup:create command or the invoiceplane-backup-create helper script. The generated backup consists of uploaded files and the sql database.

Before generating a backup — stop and remove the running instance.

docker stop invoiceplane && docker rm invoiceplane

Relaunch the container with the app:backup:create argument.

docker run --name invoiceplane -it --rm [OPTIONS] \
  sameersbn/invoiceplane:1.5.9-1 app:backup:create

The backup will be created in the backups/ folder of the Persistent⁠ volume. You can change the location using the INVOICEPLANE_BACKUPS_DIR configuration parameter.

NOTE

Backups can also be generated on a running instance using:

docker exec -it invoiceplane invoiceplane-backup-create

By default backups are held indefinitely. Using the INVOICEPLANE_BACKUPS_EXPIRY parameter you can configure how long (in seconds) you wish to keep the backups. For example, setting INVOICEPLANE_BACKUPS_EXPIRY=604800 will remove backups that are older than 7 days. Old backups are only removed when creating a new backup, never automatically.

⁠Restoring Backups

Backups created using instructions from the Creating backups⁠ section can be restored using the app:backup:restore argument.

Before restoring a backup — stop and remove the running instance.

docker stop invoiceplane && docker rm invoiceplane

Relaunch the container with the app:backup:restore argument. Ensure you launch the container in the interactive mode -it.

docker run --name invoiceplane -it --rm [OPTIONS] \
  sameersbn/invoiceplane:1.5.9-1 app:backup:restore

A list of existing backups will be displayed. Select a backup you wish to restore.

To avoid this interaction you can specify the backup filename using the BACKUP argument to app:backup:restore, eg.

docker run --name invoiceplane -it --rm [OPTIONS] \
  sameersbn/invoiceplane:1.5.9-1 app:backup:restore BACKUP=1417624827_invoiceplane_backup.tar

⁠Upgrading

To upgrade to newer releases:

  1. Download the updated Docker image:
docker pull sameersbn/invoiceplane:1.5.9-1
  1. Stop the currently running image:
docker stop invoiceplane
  1. Remove the stopped container
docker rm -v invoiceplane
  1. Start the updated image
docker run -name invoiceplane -itd \
  [OPTIONS] \
  sameersbn/invoiceplane:1.5.9-1

Point your browser to http://invoice.example.com:10080/setup⁠ to complete the upgrade.

⁠Shell Access

For debugging and maintenance purposes you may want access the containers shell. If you are using Docker version 1.3.0 or higher you can access a running containers shell by starting bash using docker exec:

docker exec -it invoiceplane bash

Tag summary

Content type

Image

Digest

Size

139.3 MB

Last updated

almost 8 years ago

docker pull freakybytes/docker-invoiceplane