This is an automated email from the ASF dual-hosted git repository.

jleroux pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new c30445068c Improved: Transform DOCKER.md into DOCKER.adoc  
(OFBIZ-12905)
c30445068c is described below

commit c30445068c0c178d814f9890ba8c63bd8a887030
Author: Jacques Le Roux <jacques.le.r...@les7arts.com>
AuthorDate: Thu Feb 22 19:08:00 2024 +0100

    Improved: Transform DOCKER.md into DOCKER.adoc  (OFBIZ-12905)
    
    This is the 1st version of DOCKER.adoc (sounds good) in order to include it 
in
    developer-manual.adoc and in README.adoc.
    
    I push the DOCKER.adoc file to the repo. It's then easier to compare with
    DOCKER.md there (in GH)
---
 DOCKER.adoc | 278 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 278 insertions(+)

diff --git a/DOCKER.adoc b/DOCKER.adoc
new file mode 100644
index 0000000000..4bc1cca3df
--- /dev/null
+++ b/DOCKER.adoc
@@ -0,0 +1,278 @@
+== Building and running OFBiz using Docker
+
+OFBiz includes a Dockerfile which can be used to build a container image
+for running OFBiz. The container image is built based on the sources
+already available in the build content, i.e. it only uses sources that
+you have already downloaded.
+
+If you want to include any plugins in your container image, you must
+download those plugins before running the build. (See the plugin
+documentation in README.adoc).
+
+=== Quickstart
+
+Follow these instructions to qet started building and running OFBiz
+using Docker.
+
+==== Build the OFBiz container image
+
+From the sources directory (i.e. the directory containing Docker.md),
+run 
+[source,shell script]
+DOCKER_BUILDKIT=1 docker build --tag ofbiz-docker
+
+==== Run the OFBiz container
+
+Run the following command:
+[source,shell script]
+docker run -it -e OFBIZ_DATA_LOAD=demo --name ofbiz-docker -p 8443:8443 
ofbiz-docker
+
+This will start an instance of the ofbiz-docker container, publish port
+8443 to localhost, load the OFBiz demo data, and then run the OFBiz
+server.
+
+Once start up completes, you can access OFBIZ at
+http://localhost:8443/partymgr
+
+=== Other container building options
+
+The OFBiz `+Dockerfile+` defines a mult-stage build. The default
+container image produced by the build is named `+runtime+` and consists
+of an unintialized OFBiz installation.
+
+During the first run of a container based on this image, seed or demo
+data can be loaded, and an admin user created.
+
+The runtime container is the default target of a docker build and can be
+created with commands similar to:
+[source,shell script]
+DOCKER_BUILDKIT=1 docker build --tag ofbiz-docker
+
+or
+[source,shell script]
+DOCKER_BUILDKIT=1 docker build --target runtime --tag ofbiz-docker
+
+The Dockerfile also defines another stage, `+demo+`, which produces a
+container image with demonstration data already loaded. This container
+image may be useful in cases where containers are frequency run and
+destroyed and the time taken to load demo data is becoming noticeable.
+
+To build a container image pre-loaded with demo data, run:
+[source,shell script]
+DOCKER_BUILDKIT=1 docker build --target demo --tag ofbiz-docker
+
+=== Container runtime options
+
+The container’s behaviour at runtime is controlled via environment
+variables, '`hook`' scripts and XML entity import files. These items
+will only be applied to a container during its first run. Flags stored
+in `+/ofbiz/runtime/container_state+` will prevent the repeated
+application of these items during subsequent starts of the container.
+
+Use of environment variables, hook scripts and XML entity import files
+are manged by the docker-entrypoint.sh script.
+
+==== Environment variables
+
+Environment variables are used in `+docker-entrypoint.sh+` to control
+configuration options for the OFBiz container.
+
+[width="100%",cols="34%,33%,33%",options="header",]
+|===
+|Environment variable |Default value |Description
+|OFBIZ_SKIP_INIT |_empty_ |Any non-empty value will cause the
+docker-entrypoint.sh script to skip any initialisation steps.
+
+|OFBIZ_ADMIN_USER |admin |Sets the username of the OFBIZ admin user.
+
+|OFBIZ_ADMIN_PASSWORD |ofbiz |Sets the password of the OFBIZ admin user.
+
+|OFBIZ_DATA_LOAD |seed |Determine what type of data loading is required.
+_none_: No data loading is perfomed. _seed_: Seed data is loaded.
+_demo_: Demo data is loaded.
+
+|OFBIZ_HOST | |Specify the hostname used to access OFBiz. If empty then
+the default value of host-headers-allowed from
+framework/security/config/security.properties is used.
+
+|OFBIZ_CONTENT_URL_PREFIX | |Used to set the content.url.prefix.secure
+and content.url.prefix.standard properties in
+`+framework/webapp/config/url.properties+`.
+
+|OFBIZ_ENABLE_AJP_PORT |_empty_ |Enable the AJP (Apache JServe Protocol)
+port to allow communication with OFBiz via a reverse proxy. Enabled when
+this environment variable contains a non-empty value.
+
+|OFBIZ_SKIP_DB_DRIVER_DOWNLOAD |_empty_ |Any non-empty value will cause
+the docker-entrypoint.sh script to skip downloading of any database
+drivers.
+
+|OFBIZ_DISABLE_COMPONENTS |plugins/birt/ofbiz-component.xml |Commas
+seperated list of paths to ofbiz-component.xml files of the components
+that should not be loaded.
+|===
+
+==== Hooks
+
+At various steps of initialisation, the `+docker-entrypoint.sh+` script
+will check for '`hook`' scripts in various directories.
+
+Users of the container can mount files into these directories and
+influence the OFBiz startup process.
+
+Only script files with filename extension `+.sh+` will be processed. If
+the file is executable, it will be executed, otherwise it will be
+sourced.
+
+[width="100%",cols="50%,50%",options="header",]
+|===
+|Directory |Step
+|`+/docker-entrypoint-hooks/before-config-applied.d+` |Scripts processed
+before configuration, such as modifications to property files, are
+applied.
+
+|`+/docker-entrypoint-hooks/after-config-applied.d+` |Scripts processed
+after configuration modifications have been applied.
+
+|`+/docker-entrypoint-hooks/before-data-load.d+` |Scripts processed
+before data loading is executed. Could be used to apply modifications to
+data files.
+
+|`+/docker-entrypoint-hooks/after-data-load.d+` |Scripts processed after
+data loading is executed.
+|===
+
+==== Data files
+
+During the data loading step - but after either seed or demo data has
+been loaded - directory `+/docker-entrypoint-hooks/additional-data.d+`
+will be checked to see if any files are present.
+
+If files are present then the load-data functionality in OFBiz will be
+executed, specifying the `+/docker-entrypoint-additional-data.d+`
+directory as a data source. Any `+.xml+` files in this directory will be
+treated as a data source and will be imported by the entity engine.
+
+This functionality can be used to pre-load OFBiz with user-specific
+data, such as a chart of accounts.
+
+==== Database
+
+By default the OFBiz container will use an internal Derby database,
+storing database related files in the /ofbiz/runtime volume.
+
+Use of an external database can be configured through environment
+variables.
+
+===== Derby
+
+To use the embedded Derby database, ensure all database related
+environment variables are unset.
+
+===== PostgreSQL
+
+To use a Postgres database set the `+OFBIZ_POSTGRES_HOST+` environment
+variable.
+
+[width="100%",cols="34%,33%,33%",options="header",]
+|===
+|Environment variable |Default |Description
+|OFBIZ_POSTGRES_HOST |_unset_ |Hostname of the PostgreSQL database
+server.
+
+|OFBIZ_POSTGRES_OFBIZ_DB |ofbiz |Name of the _ofbiz_ database.
+
+|OFBIZ_POSTGRES_OFBIZ_USER |ofbiz |Username when connecting to the ofbiz
+database.
+
+|OFBIZ_POSTGRES_OFBIZ_PASSWORD |ofbiz |Password when connecting to the
+ofbiz database.
+
+|OFBIZ_POSTGRES_OLAP_DB |ofbizolap |Name of the _olap_ database.
+
+|OFBIZ_POSTGRES_OLAP_USER |ofbizolap |Username when connecting to the
+olap database.
+
+|OFBIZ_POSTGRES_OLAP_PASSWORD |ofbizolap |Password when connecting to
+the olap database.
+
+|OFBIZ_POSTGRES_TENANT_DB |ofbiztenant |Name of the _tenant_ database.
+
+|OFBIZ_POSTGRES_TENANT_USER |ofbiztenant |Username when connecting to
+the tenant database.
+
+|OFBIZ_POSTGRES_TENANT_PASSWORD |ofbiztenant |Password when connecting
+to the tenant database.
+|===
+
+The docker-entrypoint.sh script will download a JDBC driver to access
+the PostgreSQL server and place the script in the `+/ofbiz/lib-extra+`
+volume. If you wish to skip this step then set the
+OFBIZ_SKIP_DB_DRIVER_DOWNLOAD environment variable to a non-empty value.
+This would be useful if you have already placed a suitable database
+driver in the `+/ofbiz/lib-extra+` volume.
+
+=== Examples of running the OFBiz container
+
+[source,shell script]
+docker run -it -p 8443:8443 ofbiz-docker
+
+
+Launch the OFBiz container, load the seed data, create the administrator
+user with name `+admin+` and password `+ofbiz+`, listen on port 8443 for
+connections to `+localhost+`.
+
+Users can access OFBiz at https://localhost:8443/partymgr
+
+The docker container will remain attached the terminal. Interrupting the
+container, i.e. pressing Ctrl-C, will trigger a graceful shutdown of the
+container.
+
+....
+docker run -it -e OFBIZ_DATA_LOAD=demo -p 8443:8443 ofbiz-docker
+....
+
+Launch the OFBiz container, load the demo data, listen on port 8443 for
+connections to `+localhost+`.
+
+The demo data includes the administrator user with name `+admin+` and
+password `+ofbiz+`.
+
+[source,shell script]
+docker run -it -e OFBIZ_DATA_LOAD=seed -e OFBIZ_ADMIN_USER=localadmin -e 
OFBIZ_ADMIN_PASSWORD=TTTTT -p 8443:8443 ofbiz-docker
+
+
+Launch the OFBiz container, load the seed data, create the administrator
+user with name `+localadmin+` and password `+TTTTT+`, listen on port
+8443 for connections to `+localhost+`.
+
+[source,shell script]
+docker run -it -v 
'C:\ofbiz-framework\add-data':/docker-entrypoint-additional-data.d -p 8443:8443 
ofbiz-docker
+
+
+Example of running on Windows.
+
+Launches the container with default seed data and administrator user.
+
+After data is loaded, any `+.xml+` files in directory
+`+C:\ofbiz-framework\add-data+` are imported by the OFBiz entity engine.
+
+[source,shell script]
+docker run -it -p 8443:8443 ofbiz-docker
+
+
+Launch the OFBiz container, load the seed data, create the administrator
+user with name `+admin+` and password `+ofbiz+`, listen on port 8443 for
+connections to `+localhost+`.
+
+Users can access OFBiz at https://localhost:8443/partymgr
+
+The docker container will remain attached the terminal. Interrupting the
+container, i.e. pressing Ctrl-C, will trigger a graceful shutdown of the
+container.
+
+[source,shell script]
+docker run -it -e 
OFBIZ_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
 -p 8443:8443 -p 5005:5005 ofbiz-docker
+
+
+Creates a debuggable instance of OFBiz, listening on port 5005.

Reply via email to