senaite.docker/README.md

115 lines
3.9 KiB
Markdown
Raw Normal View History

2019-08-05 22:25:45 +08:00
# SENAITE Docker
[SENAITE](https://www.senaite.com) is a free and open source LIMS built on top of
[Plone](https://plone.org) and the [Zope application server](https://www.zope.org).
This repository is based [plone.docker](https://github.com/plone/plone.docker)
Thanks to the great work of @avoinea and the other contributors.
### Try SENAITE
Click the _Try in PWD_ button below to get 4 hours to try SENAITE LIMS:
NOTE: A [DockerHub](https://hub.docker.com/) account is needed.
**Authentication: `admin:admin`**
[![Try in PWD](https://cdn.rawgit.com/play-with-docker/stacks/cff22438/assets/images/button.png)](http://play-with-docker.com?stack=https://raw.githubusercontent.com/senaite/senaite.docker/master/stack.yml)
## Usage
2019-08-05 22:31:37 +08:00
Choose either single SENAITE instance or ZEO cluster.
2019-08-05 22:25:45 +08:00
**It is inadvisable to use following configurations for production.**
### Standalone SENAITE Instance
Standalone instances are best suited for testing SENAITE and development.
Build and start the latest SENAITE container, based on [Debian](https://www.debian.org/).
2019-08-05 22:25:45 +08:00
```bash
2020-01-21 21:58:09 +08:00
$ git clone https://github.com/senaite/senaite.docker
$ cd senaite.docker/1.3.1
$ docker build -t senaite .
$ docker run --rm --name senaite -p 8080:8080 senaite
2019-08-05 22:25:45 +08:00
```
This image exposes the TCP Port `8080` via `EXPOSE 8080`, so standard container
linking will make it automatically available to the linked containers.
Now you can add a SENAITE Site at http://localhost:8080 - default user and
password are **`admin/admin`**.
### ZEO Cluster
ZEO cluster are best suited for production setups, you will **need** a loadbalancer.
Start ZEO server in the background
```bash
2019-08-05 22:31:37 +08:00
$ docker run -d --name=zeo senaite zeo
2019-08-05 22:25:45 +08:00
```
Start 2 SENAITE clients (also in the background)
```bash
2019-08-05 22:25:45 +08:00
$ docker run -d --name=instance1 --link=zeo -e ZEO_ADDRESS=zeo:8080 -p 8081:8080 senaite
$ docker run -d --name=instance2 --link=zeo -e ZEO_ADDRESS=zeo:8080 -p 8082:8080 senaite
```
### Start SENAITE In Debug Mode
2019-08-05 22:31:37 +08:00
You can also start SENAITE in debug mode (`fg`) by running
2019-08-05 22:25:45 +08:00
```bash
2019-08-05 22:25:45 +08:00
$ docker run -p 8080:8080 senaite fg
```
Debug mode may also be used with ZEO
```bash
2019-08-05 22:25:45 +08:00
$ docker run --link=zeo -e ZEO_ADDRESS=zeo:8080 -p 8080:8080 senaite fg
```
2019-08-05 22:31:37 +08:00
For more information on how to extend this image with your own custom settings,
adding more add-ons, building it or mounting volumes, please refer to the
[plone.docker documentation](https://docs.plone.org/manage/docker/docs/index.html).
2019-08-05 22:25:45 +08:00
## Supported Environment Variables
2019-08-05 22:31:37 +08:00
The SENAITE image uses several environment variable that allow to specify a more specific setup.
2019-08-05 22:25:45 +08:00
### For Basic Usage
* `ADDONS` - Customize SENAITE via Plone add-ons using this environment variable
* `ZEO_ADDRESS` - This environment variable allows you to run Plone image as a ZEO client.
2019-08-05 22:31:37 +08:00
Run SENAITE with ZEO and install the addon [senaite.storage](https://github.com/senaite/senaite.storage)
2019-08-05 22:25:45 +08:00
```bash
2019-08-05 22:25:45 +08:00
$ docker run --name=instance1 --link=zeo -e ZEO_ADDRESS=zeo:8080 -p 8080:8080 \
2019-08-05 22:31:37 +08:00
-e ADDONS="senaite.storage" senaite
2019-08-05 22:25:45 +08:00
```
To use specific add-ons versions:
```bash
2019-08-05 22:31:37 +08:00
-e ADDONS="senaite.storage==1.0.0"
2019-08-05 22:25:45 +08:00
```
### For Advanced Usage
* `PLONE_ZCML`, `ZCML` - Include custom Plone add-ons ZCML files (former `BUILDOUT_ZCML`)
* `PLONE_DEVELOP`, `DEVELOP` - Develop new or existing Plone add-ons (former `BUILDOUT_DEVELOP`)
* `ZEO_READ_ONLY` - Run Plone as a read-only ZEO client. Defaults to `off`.
* `ZEO_CLIENT_READ_ONLY_FALLBACK` - A flag indicating whether a read-only remote storage should be acceptable as a fallback when no writable storages are available. Defaults to `false`.
* `ZEO_SHARED_BLOB_DIR` - Set this to on if the ZEO server and the instance have access to the same directory. Defaults to `off`.
* `ZEO_STORAGE` - Set the storage number of the ZEO storage. Defaults to `1`.
* `ZEO_CLIENT_CACHE_SIZE` - Set the size of the ZEO client cache. Defaults to `128MB`.
* `ZEO_PACK_KEEP_OLD` - Can be set to false to disable the creation of *.fs.old files before the pack is run. Defaults to true.