- Docker secrets
- Plugins volumes for persistent plugins
- Entrypoint Standard
- Exposed port
- Environment variables
- Auto create and sign db
- Auto migration db
- Openjdk 11
- Continuous integration capable
- Inheritance capable
- Standard output log
iDempiere Docker uses a postgres admin password and user to create a clean database, example POSTGRES_PASSWORD=postgres, if you are using a different configuration you need to see Environment Variables:
$ docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:9.6Remember to change the postgres port in case you have one previously running, example
-p 5433:5432. You could use any postgres version in the Prerequisites Page.
$ docker run -d --name idempiere -p 8080:8080 --link postgres:postgres idempiereofficial/idempiere:7.1For persistent data see the section Volumes.
Start containers automatically here.
Open in the browser: http://127.0.0.1:8080/webui/
$ docker run -d --name idempiere -p 8080:8080 --network host\
-e DB_HOST=127.0.0.1\
-e DB_PORT=5432\
-e DB_NAME=idempiere\
-e DB_USER=adempiere\
-e DB_PASS=adempiere\
-e DB_ADMIN_PASS=postgres\
idempiereofficial/idempiere:7.1For secrets see the section Docker Secrets.
$ docker swarm init
Create a docker-stack.yml file:
version: '3.7'
services:
idempiere:
image: idempiereofficial/idempiere:7.1
volumes:
- idempiere_config:/opt/idempiere/configuration
- idempiere_plugins:/opt/idempiere/plugins
environment:
- TZ=America/Guayaquil
ports:
- 8080:8080
- 8443:8443
- 12612:12612
postgres:
image: postgres:9.6
volumes:
- idempiere_data:/var/lib/postgresql/data
environment:
- TZ=America/Guayaquil
- POSTGRES_PASSWORD=postgres
ports:
- 5432:5432
volumes:
idempiere_data:
idempiere_plugins:
idempiere_config:$ docker stack deploy -c docker-stack.yml idempiere$ make build run
Command list:
make build creates iDempiere docker image (with labels idempiere:7.1 and idempiere:latest)
make run runs iDempiere docker stack (includes postgres:9.6)
make stop stops the stack
make log shows the logs of iDempiere
make bash creates a terminal within iDempiere docker image
The following users and passwords are part of the initial seed database:
| Usage | User | Password |
|---|---|---|
| System Management | System | System |
| System Management or any role/company | SuperUser | System |
| Sample Client Administration | GardenAdmin | GardenAdmin |
| Sample Client User | GardenUser | GardenUser |
| Variable | Default Value | Description |
|---|---|---|
| IDEMPIERE_HOME | /opt/idempiere | Path to iDempiere |
| IDEMPIERE_PLUGINS_HOME | /opt/idempiere/plugins | Path to iDempiere plugins |
| IDEMPIERE_LOGS_HOME | /opt/idempiere/log | Path to iDempiere logs |
| IDEMPIERE_VERSION | 7.1 | iDempiere Version |
| IDEMPIERE_PORT | 8080 | HTTP port for iDempiere |
| IDEMPIERE_SSL_PORT | 8443 | HTTPS port for iDempiere |
| KEY_STORE_PASS | myPassword | Password for java key store (SSL Certificate) |
| KEY_STORE_ON | idempiere.org | Common Name for SSL Certificate |
| KEY_STORE_OU | iDempiere Docker | Organization Unit for SSL Certificate |
| KEY_STORE_O | iDempiere | Organization for SSL Certificate |
| KEY_STORE_L | iDempiere | Locate/Town for SSL Certificate |
| KEY_STORE_S | CA | State for SSL Certificate |
| KEY_STORE_C | US | Country for SSL Certificate |
| DB_HOST | postgres | Hostname for Postgres database |
| DB_PORT | 5432 | Postgres port |
| DB_NAME | idempiere | iDempiere Database |
| DB_USER | adempiere | User for iDempiere Database |
| DB_PASS | adempiere | Pass for DB_USER |
| DB_ADMIN_PASS | postgres | Pass for admin user (postgres user) |
| MAIL_HOST | idempiere | Mail server |
| MAIL_USER | info | Mail user |
| MAIL_PASS | info | Mail password |
| MAIL_ADMIN | info@idempiere | Admin e-mail |
| JAVA_HOME | /usr/local/openjdk-11 | Path to java |
| JAVA_OPTS | Java execution parameters (e.g. -Xms and -Xmx) |
|
| DEBUG_PORT | 4554 | Port for remote debug |
| TELNET_PORT | 12612 | OSGI port for telnet connection |
| MIGRATE_EXISTING_DATABASE | false | Migrate the existing database to latest version |
| Port | Description |
|---|---|
| 8080 | Default HTTP port for iDempiere |
| 8443 | Default HTTPS port for iDempiere |
| 12612 | Default OSGI port for telnet connection |
| 4554 | Default remote debug port |
iDempiere starts looking for an existing database, if it don't exist iDempiere will create a seed database.
If the database exists iDempiere won't migrate it, you must do it manually, or using
MIGRATE_EXISTING_DATABASE=true.
Before starting, it will configure all the settings according to
the setup.sh or console-setup.sh files. See docker-entrypoint.sh file.
This project has not support for oracle database.
volumes:
- idempiere_data:/var/lib/postgresql/dataOr adding to bash command:
-v idempiere_data:/var/lib/postgresql/datavolumes:
- idempiere_config:/opt/idempiere/configuration
- idempiere_plugins:/opt/idempiere/pluginsOr adding to bash command:
-v idempiere_config:/opt/idempiere/configuration -v idempiere_plugins:/opt/idempiere/pluginsidempiere_config saves the plugins configuration and idempiere_plugins is
the path to contain the jar plugin (this one is used to install new plugins).
Other way to share plugins:
volumes:
- idempiere_config:/opt/idempiere/configuration
- ./plugins:/opt/idempiere/plugins-v idempiere_config:/opt/idempiere/configuration -v ./plugins:/opt/idempiere/pluginsvolumes:
- idempiere_log:/opt/idempiere/logOr adding to bash command:
-v idempiere_log:/opt/idempiere/logAdding command yml property:
command: idempiere debugAs an alternative to passing sensitive information via environment variables,
_FILE may be appended to some of the previously listed environment variables,
causing the initialization script to load the values for those variables
from files present in the container. See Docker Secrets and Docker PosgreSQL.
| Variable | Original variable |
|---|---|
| DB_ADMIN_PASS_FILE | DB_ADMIN_PASS |
| DB_PASS_FILE | DB_PASS |
| MAIL_PASS_FILE | MAIL_PASS |
| KEY_STORE_PASS_FILE | KEY_STORE_PASS |
Create the secret:
$ printf "postgres" | docker secret create db_admin_pass -Use environment variable in the stack file:
version: '3.7'
services:
idempiere:
image: idempiere:7.1
environment:
- TZ=America/Guayaquil
- DB_ADMIN_PASS_FILE=/run/secrets/db_admin_pass
secrets:
- db_admin_pass
ports:
- 8080:8080
- 8443:8443
- 12612:12612
postgres:
image: postgres:9.6
environment:
- TZ=America/Guayaquil
- POSTGRES_PASSWORD_FILE=/run/secrets/db_admin_pass
secrets:
- db_admin_pass
ports:
- 5432:5432
volumes:
idempiere_data:
secrets:
db_admin_pass:
external: true- Oracle DB capable
- On/Off logs to file
- Console setup bypass
- Add TELNET_HOST env var in core idempiere-server.sh file
- Import dump from volume
- Download iDempiere compile from env variable
- Add parameter stop after init
- Add trigger build from official jenkins