Docker Management
Javapackage: com.etendoerp.docker
Overview
Docker is a platform that enables developers to automate the deployment, scaling, and management of applications. It uses containerization technology, which packages an application and its dependencies into a standardized unit called a container. Containers can run consistently across different computing environments, making them highly portable and efficient.
The com.etendoerp.docker
module enables the use of Dockerized containers in Etendo Classic. This allows for the distribution and encapsulation of new functionalities using Etendo's existing module infrastructure. It also provides the capability to Dockerize the database, Tomcat, or any current or future Etendo infrastructure dependencies. Also, the module includes Gradle tasks to manage containers.
Info
This module includes the infrastructure for container management and the Postgres database service, as an example. In case you want to run other services, add the corresponding modules that implement the dockerization.
Additionally, the infrastructure could be extended, and allows other modules to include in it their own specific containers.
Info
To be able to include this functionality, the Platform Extensions Bundle must be installed. To do that, follow the instructions from the marketplace: Platform Extensions Bundle. For more information about the available versions, core compatibility and new features, visit Platform Extensions - Release notes.
Requirements
This project depends on the following tools:
- Docker: version
26.0.0
or higher. - Docker Compose: version
2.26.0
or higher.
Using Containers Distributed in Modules
Configuration Variables
-
It is necessary to include at least one configuration variable for each module to be launched, this variable enables all the services related to the module to be started.
docker_<javapackage>=true
Example:
-
In case you want to configure only one service belonging to a module, it is possible by adding a variable with the format:
docker_<javapackage>_<service>=true
Example:
Note
In this case, only the database service will be taken into account when raising and lowering services related to the
com.etendoerp.docker
module. -
It is also possible that some services may require configuration variables, in which case they should be added:
docker_<javapackage>_<variable>=<value>
Example:
Note
In this example, this variable configures the Dockerized Tomcat Service module port, although the necessary configurations will be included in the documentation of each module.
Finally, always to apply changes, execute
Gradle Tasks to Manage Containers
Execute the following command to use the infrastructure:
Running
This command will search for all configured resources and start the containers.Note
If you only have the base com.etendoerp.docker
module installed and configured, this command will start a PostgreSQL database.
Stopping
This command will stop the containers.Down
This command will stop and remove the containers.Verifying the Status
To verify the status of the resources started by Docker Compose, you can use the following Docker commands:
docker ps
This command lists all running Docker containers. You should see the containers related to Etendo
docker compose logs
This command shows the logs of all the services defined in your Docker Compose configuration, which can help in troubleshooting and verifying that the services are running correctly.
It is also possible to manage containers with tools such as Lazydocker or Docker Desktop.
Postgres Database Service
In this module a Postgres database service is included, this allows to use the dockerized database in Etendo. To use it the following steps must be followed:
-
Once the
com.etendoerp.docker
module is installed, it is necessary to add a configuration variable in thegradle.properties
to enable the use of the service: -
Then it is necessary to run
./gradlew setup
, to apply the configuration changes. -
When
./gradlew resources.up
is executed, a new Docker container with the database service will be raised using the configuration variables defined in thegradle.properties
, such as port, user, password, etc.Warning
In case you have the same service running locally on the same port it should be down.
-
Finally, using this service it is possible to run
./gradlew install
to install the database from scratch, or it is possible to restore a backup and start using the new dockerized database service.