From d674496c82db52cc3563de2ec752efb530f0a1c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20Serrador?= <61971372+mruiserrmendix@users.noreply.github.com> Date: Fri, 24 Apr 2026 10:56:43 +0200 Subject: [PATCH 1/8] Enhance Docker deployment documentation for Mendix apps Added details about the Portable App Distribution feature, including its benefits for air-gapped and private cloud environments, prerequisites for deployment, and instructions for creating a Docker image and using environment variables and configuration files. Just need help "Step 2: Configure the Container (optional) " .... For more information, see the Environment Variables and Configuration File sections below." I need to have Environment Variables and Configuration File linked to the bookmark on the page --- .../deployment/docker-deploy/docker-pad.md | 180 ++++++++++++++++-- 1 file changed, 167 insertions(+), 13 deletions(-) diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index 7f028b4d449..81a89ac6a23 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/docker-pad.md @@ -21,19 +21,55 @@ Portable App Distribution revolutionizes the way in which Mendix applications ar The ability to generate a Portable App Distribution with a single build command means that creating a Docker-ready artifact becomes a streamlined process, making the overall integration into existing Docker-based CI/CD pipelines more efficient and less prone to errors. +The Portable App Distribution feature allows you to package and deploy Mendix apps without relying on the Mendix Cloud or a Mendix Operator. This is particularly useful for: + +* Air-gapped environments — where internet access is restricted or unavailable + +* Private cloud deployments — where you manage your own infrastructure + +* Full control scenarios — where you need complete ownership of the deployment pipeline + +Docker provides a consistent and reproducible environment for running Mendix apps, making it ideal for cloud-native and containerized deployments. + Portable App Distribution offers a more agile, user-centric, and efficient deployment ecosystem, empowering customers with greater control over their Docker deployments and simplifying the internal deployment processes. +## Prerequisites + +Before you begin, ensure you have the following: + +* Mendix Studio Pro version 11.19, 11.6.5, or above + +* A Mendix app that you want to deploy + +* Docker installed on your system (for building and running Docker images) + +* Access to a container registry (for pushing and pulling Docker images) + ## Deploying an App with Portable App Distribution The Portable App Distribution feature in Mendix Studio Pro provides you with the necessary application files to build a Docker image. It packages your Mendix application as a self-contained distribution, ready for integration into your Docker environment. To deploy your app to Docker, perform the following steps: -1. Generate the application files. For more information, see [Portable App Distribution](/developerportal/deploy/portable-app-distribution-deploy/). +### Create a Portable App Distribution Package - These files are the core of your Mendix application and are ready to be included in a Docker image. +To create a Portable Package from your Mendix app, follow these steps: - The following is an example *Dockerfile* that incorporates them. You must create this Dockerfile yourself and place it alongside the application files generated by the Portable App Distribution. The `COPY` commands in the example below assumes that the `app`, `bin`, `etc`, and `lib` directories are in the same location as your Dockerfile. +1. Open your app in Studio Pro. +2. Go to App > Create Deployment Package. +3. In the Create Deployment Package dialog box, select Portable package. +4. Click Ok. +5. The Portable Package is saved to your-project-folder/releases/XYZ_portable_YYYYMMDD_hhmm.zip + +For more information, see [Portable App Distribution](/developerportal/deploy/portable-app-distribution-deploy/). +These files are the core of your Mendix application and are ready to be included in a Docker image. + +### Build a Docker Image + +To build a Docker image from the Portable Package, follow these steps: +1. Extract the Portable Package to a directory of your choice. +2. Create a Dockerfile in the extracted directory with the following content: +The following is an example *Dockerfile* that incorporates them. You must create this Dockerfile yourself and place it alongside the application files generated by the Portable App Distribution. The `COPY` commands in the example below assume that the `app`, `bin`, `etc`, and `lib` directories are in the same location as your Dockerfile. ```text # This file provides an example on how to start the runtime in Docker. @@ -62,19 +98,69 @@ To deploy your app to Docker, perform the following steps: CMD ["./bin/start", "etc/Default"] ``` -2. Build the Docker image by running a command like the following: `docker build -t mx/project:latest -f build/docker/Dockerfile`, where: +{{% alert color="info" %}} Explanation +FROM eclipse-temurin:21-jdk – Starts from an JAVA base image, as the Portable Package contains all necessary dependencies. + +COPY . /app – Copies the contents of the Portable Package to the /app directory in the image. + +WORKDIR /mendix – Sets the working directory to /app. + +EXPOSE 8080 – Exposes port 8080 for the Mendix Runtime. + +EXPOSE 8090 – Exposes port 8090 for the Mendix Runtime admin interface. + +CMD ["./bin/start", "etc/Default"] – Sets the start script to the Mendix Runtime execute.{{% /alert %}} + + +3. Build the Docker image using the following command: + + +`docker build -t : -f build/docker/Dockerfile` + +* Replace `` and `` with your desired image name and version tag (for example, my-mendix-app:1.0.0). +* `-f build/docker/Dockerfile` - Specifies the path to your Dockerfile. + +### Push the Docker Image (Optional) + +To push the Docker image to a container registry, follow these steps: + +Log in to your container registry: + +`docker login ` + +Tag the Docker image with the registry URL: - * `-t mx/project:latest` - Tags your image as `mx/project` with the label `latest`. You can customize this to your project's name and version. +`docker tag : /:` - * `-f build/docker/Dockerfile` - Specifies the path to your Dockerfile. +Push the Docker image to the registry: -3. Start your Mendix application in a Docker container by running a command like the following: `docker run --rm -it -p 8080:8080 -e M2EE_ADMIN_PASS= mx/project:latest`, where: +`docker push /:` - * `--rm` - Automatically removes the container when it exits. - * `-it` - Runs the container in interactive mode and allocates a pseudo-TTY. - * `-p 8080:8080` - Maps port 8080 on your host machine to port 8080 inside the container, allowing you to access your app. - * `-e M2EE_ADMIN_PASS=` - Ensure that you set your admin password here. - * `mx/project:latest` - Refers to the image that you built. +### Deploy the Docker Image + +Once the Docker image is available in your container registry, you can deploy it to your target environment using the steps below. + +Step 1: Pull the Docker Image +Pull the Docker image from your container registry: + +`docker pull /:` +Replace , , and with the appropriate values for your Docker image. + +Step 2: Configure the Container (optional) +The Portable App Distribution container can be configured to suit your deployment environment and requirements. This can be done at the configuration `etc` folder. (https://docs.mendix.com/developerportal/deploy/portable-apps-distribution/reference/#folder-structure ) +Configuration can also be applied either through **environment variables** or a **configuration file**, giving you flexibility depending on your setup and preferences. Both approaches support the same set of runtime settings, so you can choose whichever method best fits your workflow. + +For more information, see the Environment Variables and Configuration File sections below. + +Step 3: Run the Container +Run the container using the following command: + + `docker run --rm -it -p 8080:8080 -e M2EE_ADMIN_PASS= /:` +* --rm - Automatically removes the container when it exits. +* -it - Runs the container in interactive mode and allocates a pseudo-TTY. +* -p 8080:8080 - Maps port 8080 on your host machine to port 8080 inside the container, allowing you to access your app. +* -e M2EE_ADMIN_PASS= - Ensure that you set your admin password here. +* /:- Refers to the image that you built. You can view your running Mendix application at `localhost:8080`. To stop the application, press **Ctrl-C** in your terminal. @@ -116,4 +202,72 @@ To use this Docker Compose configuration, perform the following steps: 2. Navigate to the directory containing your *docker-compose.yaml* file 3. Run a command like the following: `docker compose -f docker_compose/Default.yaml up` -This example assumes that your configuration is named Default. \ No newline at end of file +This example assumes that your configuration is named Default. + +## Environment Variables + +The Mendix Runtime can be configured using environment variables. A sample of the following environment variables are supported: + +| Environment Variable | Description | +|----------------------|-------------| +|`DATABASE_TYPE`|The type of the database (e.g., PostgreSQL, MySQL)| +|`DATABASE_HOST`|The hostname of the database server and the port of the database server| +|`DATABASE_NAME`|The name of the database| + +From more information for more information, see https://docs.mendix.com/refguide/custom-settings/#introduction + +## Configuration File + +Alternatively, you can configure the Mendix Runtime using a configuration file. The configuration file is a JSON file that contains the same settings as the environment variables. + +### Example Configuration File + +```json +{ + "DatabaseType": "PostgreSQL", + "DatabaseHost": "localhost:5432", + "DatabaseName": "mendix", + "DatabaseUserName": "mendix", + "DatabasePassword": "mendix", + "AdminPassword": "Admin1234!", + "RuntimePort": 8080, + "RuntimeAdminPort": 8090 +} +```` + +### Using the Configuration File + +To use the configuration file, you can upload the configuration file to the path of the configuration path: + +`docker run --rm -it -p 8080:8080 -e M2EE_ADMIN_PASS= /: \ + -v host_path/config.conf:container_path/config.conf` + +You need to mount the volume so that Docker can find it. + +## Logging + +The Mendix Runtime logs to standard output by default. You can configure the log level using the MX_LOG_LEVEL environment variable. + +The following log levels are supported (in order of verbosity): + +|Log Level|Description| +|---------|-----------| +|`TRACE`|Most verbose — logs all internal operations| +|`DEBUG`|Detailed diagnostic information| +|`INFO`|General operational messages (default)| +|`WARNING`|Potentially harmful situations| +|`ERROR`|Error events that may still allow the app to continue| +|`CRITICAL`|Severe errors that may cause the app to stop| + + +## Health Checks + +The Mendix Runtime exposes health check endpoints that can be used to monitor the status of your app: + +|EndPoint|Description| +|--------|-----------| +|`/health`|Returns the overall health status of the app| +|`/health/live`|Returns the liveness status — indicates if the app is running| +|`/health/ready`|Returns the readiness status — indicates if the app is ready to serve traffic| + +These endpoints are especially useful when integrating with orchestration platforms such as Kubernetes, which rely on liveness and readiness probes to manage container lifecycle. From 9b4f07ccc87f4db33cddee6a05a3ef0b2057c06b Mon Sep 17 00:00:00 2001 From: katarzyna-koltun-mx <108737161+katarzyna-koltun-mx@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:16:44 +0200 Subject: [PATCH 2/8] Update docker-pad.md --- content/en/docs/deployment/docker-deploy/docker-pad.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index 81a89ac6a23..1e201113da2 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/docker-pad.md @@ -150,7 +150,7 @@ Step 2: Configure the Container (optional) The Portable App Distribution container can be configured to suit your deployment environment and requirements. This can be done at the configuration `etc` folder. (https://docs.mendix.com/developerportal/deploy/portable-apps-distribution/reference/#folder-structure ) Configuration can also be applied either through **environment variables** or a **configuration file**, giving you flexibility depending on your setup and preferences. Both approaches support the same set of runtime settings, so you can choose whichever method best fits your workflow. -For more information, see the Environment Variables and Configuration File sections below. +For more information, see the [Environment Variables](#env-variables) and [Configuration File](#config-file) sections below. Step 3: Run the Container Run the container using the following command: @@ -204,7 +204,7 @@ To use this Docker Compose configuration, perform the following steps: This example assumes that your configuration is named Default. -## Environment Variables +## Environment Variables {#env-variables} The Mendix Runtime can be configured using environment variables. A sample of the following environment variables are supported: @@ -216,7 +216,7 @@ The Mendix Runtime can be configured using environment variables. A sample of th From more information for more information, see https://docs.mendix.com/refguide/custom-settings/#introduction -## Configuration File +## Configuration File {#config-file} Alternatively, you can configure the Mendix Runtime using a configuration file. The configuration file is a JSON file that contains the same settings as the environment variables. From 80b172dc82d51c206111da708814ce946167fe23 Mon Sep 17 00:00:00 2001 From: katarzyna-koltun-mx <108737161+katarzyna-koltun-mx@users.noreply.github.com> Date: Fri, 24 Apr 2026 11:46:33 +0200 Subject: [PATCH 3/8] Update docker-pad.md --- .../en/docs/deployment/docker-deploy/docker-pad.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index 1e201113da2..6926d57a398 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/docker-pad.md @@ -21,13 +21,11 @@ Portable App Distribution revolutionizes the way in which Mendix applications ar The ability to generate a Portable App Distribution with a single build command means that creating a Docker-ready artifact becomes a streamlined process, making the overall integration into existing Docker-based CI/CD pipelines more efficient and less prone to errors. -The Portable App Distribution feature allows you to package and deploy Mendix apps without relying on the Mendix Cloud or a Mendix Operator. This is particularly useful for: +The Portable App Distribution feature allows you to package and deploy Mendix apps without relying on the Mendix Cloud or a Mendix Operator. This is particularly useful for the following use cases: -* Air-gapped environments — where internet access is restricted or unavailable - -* Private cloud deployments — where you manage your own infrastructure - -* Full control scenarios — where you need complete ownership of the deployment pipeline +* Air-gapped environments where internet access is restricted or unavailable +* Private cloud deployments where you manage your own infrastructure +* Full control scenarios where you need complete ownership of the deployment pipeline Docker provides a consistent and reproducible environment for running Mendix apps, making it ideal for cloud-native and containerized deployments. @@ -38,11 +36,8 @@ Portable App Distribution offers a more agile, user-centric, and efficient deplo Before you begin, ensure you have the following: * Mendix Studio Pro version 11.19, 11.6.5, or above - * A Mendix app that you want to deploy - * Docker installed on your system (for building and running Docker images) - * Access to a container registry (for pushing and pulling Docker images) ## Deploying an App with Portable App Distribution From 78ac4927c968050e6c312fcacab5173c02f5aa9e Mon Sep 17 00:00:00 2001 From: katarzyna-koltun-mx <108737161+katarzyna-koltun-mx@users.noreply.github.com> Date: Fri, 24 Apr 2026 12:17:59 +0200 Subject: [PATCH 4/8] Update docker-pad.md --- content/en/docs/deployment/docker-deploy/docker-pad.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index 6926d57a398..8280c25f374 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/docker-pad.md @@ -44,9 +44,9 @@ Before you begin, ensure you have the following: The Portable App Distribution feature in Mendix Studio Pro provides you with the necessary application files to build a Docker image. It packages your Mendix application as a self-contained distribution, ready for integration into your Docker environment. -To deploy your app to Docker, perform the following steps: +To deploy your app to Docker, you must create a Portable App Distribution Package, build a Docker image, and then deploy the Docker image (including optionally pushing it to a container registry. For more information, refer to the sections below. -### Create a Portable App Distribution Package +### Creating a Portable App Distribution Package To create a Portable Package from your Mendix app, follow these steps: @@ -59,7 +59,7 @@ To create a Portable Package from your Mendix app, follow these steps: For more information, see [Portable App Distribution](/developerportal/deploy/portable-app-distribution-deploy/). These files are the core of your Mendix application and are ready to be included in a Docker image. -### Build a Docker Image +### Building a Docker Image To build a Docker image from the Portable Package, follow these steps: 1. Extract the Portable Package to a directory of your choice. @@ -115,7 +115,7 @@ CMD ["./bin/start", "etc/Default"] – Sets the start script to the Mendix Runti * Replace `` and `` with your desired image name and version tag (for example, my-mendix-app:1.0.0). * `-f build/docker/Dockerfile` - Specifies the path to your Dockerfile. -### Push the Docker Image (Optional) +### Optional: Pushing the Docker Image To push the Docker image to a container registry, follow these steps: @@ -131,7 +131,7 @@ Push the Docker image to the registry: `docker push /:` -### Deploy the Docker Image +### Deploying the Docker Image Once the Docker image is available in your container registry, you can deploy it to your target environment using the steps below. From 196011111b8a7fb888cf76d22006b31c42fd72fd Mon Sep 17 00:00:00 2001 From: katarzyna-koltun-mx <108737161+katarzyna-koltun-mx@users.noreply.github.com> Date: Fri, 24 Apr 2026 13:27:57 +0200 Subject: [PATCH 5/8] Revise Portable Package creation instructions Updated instructions for creating a Portable App Distribution Package and clarified the saving location. --- .../en/docs/deployment/docker-deploy/docker-pad.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index 8280c25f374..d7bb8a8f6d4 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/docker-pad.md @@ -48,16 +48,16 @@ To deploy your app to Docker, you must create a Portable App Distribution Packag ### Creating a Portable App Distribution Package -To create a Portable Package from your Mendix app, follow these steps: +To create a Portable Package from your Mendix app, perform the following steps: 1. Open your app in Studio Pro. -2. Go to App > Create Deployment Package. -3. In the Create Deployment Package dialog box, select Portable package. -4. Click Ok. -5. The Portable Package is saved to your-project-folder/releases/XYZ_portable_YYYYMMDD_hhmm.zip +2. Go to **App** > **Create Deployment Package**. +3. In the **Create Deployment Package** dialog, select **Portable package**. +4. Click **OK**. -For more information, see [Portable App Distribution](/developerportal/deploy/portable-app-distribution-deploy/). -These files are the core of your Mendix application and are ready to be included in a Docker image. +The Portable Package is saved to the following location: `/releases/.zip`. + +For more information about Portable Packages, see [Portable App Distribution](/developerportal/deploy/portable-app-distribution-deploy/). Files included in the Portable Package are the core of your Mendix application and are ready to be included in a Docker image. ### Building a Docker Image From 2b25f8b3fb47a7db9b03c790f2ae6929615414e7 Mon Sep 17 00:00:00 2001 From: katarzyna-koltun-mx <108737161+katarzyna-koltun-mx@users.noreply.github.com> Date: Fri, 24 Apr 2026 16:52:19 +0200 Subject: [PATCH 6/8] Update docker-pad.md --- content/en/docs/deployment/docker-deploy/docker-pad.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index d7bb8a8f6d4..f23051638af 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/docker-pad.md @@ -61,10 +61,10 @@ For more information about Portable Packages, see [Portable App Distribution](/d ### Building a Docker Image -To build a Docker image from the Portable Package, follow these steps: +To build a Docker image from the Portable Package, perform the following steps: + 1. Extract the Portable Package to a directory of your choice. -2. Create a Dockerfile in the extracted directory with the following content: -The following is an example *Dockerfile* that incorporates them. You must create this Dockerfile yourself and place it alongside the application files generated by the Portable App Distribution. The `COPY` commands in the example below assume that the `app`, `bin`, `etc`, and `lib` directories are in the same location as your Dockerfile. +2. Create a Dockerfile in the extracted directory with contents like the following. ```text # This file provides an example on how to start the runtime in Docker. @@ -92,6 +92,7 @@ The following is an example *Dockerfile* that incorporates them. You must create # Start command CMD ["./bin/start", "etc/Default"] ``` + You must create this Dockerfile yourself and place it alongside the application files generated by the Portable App Distribution. The `COPY` commands in the example above assume that the `app`, `bin`, `etc`, and `lib` directories are in the same location as your Dockerfile. {{% alert color="info" %}} Explanation FROM eclipse-temurin:21-jdk – Starts from an JAVA base image, as the Portable Package contains all necessary dependencies. From 2403eb9d4902229ce716907f7827dc5b64e13256 Mon Sep 17 00:00:00 2001 From: katarzyna-koltun-mx <108737161+katarzyna-koltun-mx@users.noreply.github.com> Date: Wed, 29 Apr 2026 16:07:10 +0200 Subject: [PATCH 7/8] Update docker-pad.md --- .../deployment/docker-deploy/docker-pad.md | 81 ++++++------------- 1 file changed, 25 insertions(+), 56 deletions(-) diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index f23051638af..33702b20fdb 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/docker-pad.md @@ -70,95 +70,64 @@ To build a Docker image from the Portable Package, perform the following steps: # This file provides an example on how to start the runtime in Docker. # It is based on the configuration named Default. + # Start from an JAVA base image, as the Portable Package contains all necessary dependencies FROM eclipse-temurin:21-jdk - # Set working directory + # Set the working directory to /app WORKDIR /mendix - # Copy Mendix app files into the image + # Copy the contents of the Portable Package to the /app directory in the image COPY ./app ./app COPY ./bin ./bin COPY ./etc ./etc COPY ./lib ./lib - # Environment variables (optional) + # Set environment variables (optional) ENV MX_LOG_LEVEL=info ENV M2EE_ADMIN_PASS=${M2EE_ADMIN_PASS} - # Expose ports + # Expose port 8080 for the Mendix Runtime and port 8090 for the Mendix Runtime admin interface EXPOSE 8090 EXPOSE 8080 - # Start command + # Set the start script to the Mendix Runtime execute command CMD ["./bin/start", "etc/Default"] ``` You must create this Dockerfile yourself and place it alongside the application files generated by the Portable App Distribution. The `COPY` commands in the example above assume that the `app`, `bin`, `etc`, and `lib` directories are in the same location as your Dockerfile. -{{% alert color="info" %}} Explanation -FROM eclipse-temurin:21-jdk – Starts from an JAVA base image, as the Portable Package contains all necessary dependencies. +3. Build the Docker image by using the following command: `docker build -t : -f build/docker/Dockerfile`, where: -COPY . /app – Copies the contents of the Portable Package to the /app directory in the image. - -WORKDIR /mendix – Sets the working directory to /app. - -EXPOSE 8080 – Exposes port 8080 for the Mendix Runtime. - -EXPOSE 8090 – Exposes port 8090 for the Mendix Runtime admin interface. - -CMD ["./bin/start", "etc/Default"] – Sets the start script to the Mendix Runtime execute.{{% /alert %}} - - -3. Build the Docker image using the following command: - - -`docker build -t : -f build/docker/Dockerfile` - -* Replace `` and `` with your desired image name and version tag (for example, my-mendix-app:1.0.0). -* `-f build/docker/Dockerfile` - Specifies the path to your Dockerfile. + * `` and `` - Indicate your required image name and version tag (for example, my-mendix-app:1.0.0). + * `-f build/docker/Dockerfile` - Specifies the path to your Dockerfile. ### Optional: Pushing the Docker Image -To push the Docker image to a container registry, follow these steps: - -Log in to your container registry: - -`docker login ` - -Tag the Docker image with the registry URL: +To push the Docker image to a container registry, perform the following steps: -`docker tag : /:` - -Push the Docker image to the registry: - -`docker push /:` +1. Log in to your container registry by running the following command: `docker login `. +2. Tag the Docker image with the registry URL by running the following command: `docker tag : /:`. +3. Push the Docker image to the registry by running the following command: `docker push /:`. ### Deploying the Docker Image -Once the Docker image is available in your container registry, you can deploy it to your target environment using the steps below. - -Step 1: Pull the Docker Image -Pull the Docker image from your container registry: +Once the Docker image is available in your container registry, you can deploy it to your target environment by performing the following steps: -`docker pull /:` -Replace , , and with the appropriate values for your Docker image. +1. Pull the Docker image from your container registry by running the following command: `docker pull /:`, replacing ``, ``, and `` with the appropriate values for your Docker image. +2. Optional: Configure the container. -Step 2: Configure the Container (optional) -The Portable App Distribution container can be configured to suit your deployment environment and requirements. This can be done at the configuration `etc` folder. (https://docs.mendix.com/developerportal/deploy/portable-apps-distribution/reference/#folder-structure ) -Configuration can also be applied either through **environment variables** or a **configuration file**, giving you flexibility depending on your setup and preferences. Both approaches support the same set of runtime settings, so you can choose whichever method best fits your workflow. + The Portable App Distribution container can be configured to suit your deployment environment and requirements. You can do this in the `etc` [configuration folder](/developerportal/deploy/portable-apps-distribution/reference/#folder-structure). You can also apply the configuration through environment variables or a configuration file, giving you flexibility depending on your setup and preferences. Both approaches support the same set of runtime settings, so you can choose whichever method best fits your workflow. -For more information, see the [Environment Variables](#env-variables) and [Configuration File](#config-file) sections below. + For more information, see the [Environment Variables](#env-variables) and [Configuration File](#config-file) sections below. -Step 3: Run the Container -Run the container using the following command: +3. Run the container by using the command `docker run --rm -it -p 8080:8080 -e M2EE_ADMIN_PASS= /:`, where: - `docker run --rm -it -p 8080:8080 -e M2EE_ADMIN_PASS= /:` -* --rm - Automatically removes the container when it exits. -* -it - Runs the container in interactive mode and allocates a pseudo-TTY. -* -p 8080:8080 - Maps port 8080 on your host machine to port 8080 inside the container, allowing you to access your app. -* -e M2EE_ADMIN_PASS= - Ensure that you set your admin password here. -* /:- Refers to the image that you built. + * `--rm` - Automatically removes the container when it exits. + * `-it` - Runs the container in interactive mode and allocates a pseudo-TTY. + * `-p 8080:8080` - Maps port 8080 on your host machine to port 8080 inside the container, allowing you to access your app. + * `-e M2EE_ADMIN_PASS=` - Ensure that you set your admin password here. + * `/:` - Refers to the image that you built. -You can view your running Mendix application at `localhost:8080`. To stop the application, press **Ctrl-C** in your terminal. +You can view your running Mendix application at `localhost:8080`. To stop the application, press **Ctrl+C** in your terminal. ## Docker Compose for Multi-Container Setups From 7025098ef5b47d421598bc1c11f2c58e92a0d0e4 Mon Sep 17 00:00:00 2001 From: katarzyna-koltun-mx <108737161+katarzyna-koltun-mx@users.noreply.github.com> Date: Wed, 29 Apr 2026 16:15:58 +0200 Subject: [PATCH 8/8] Update docker-pad.md --- .../deployment/docker-deploy/docker-pad.md | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/content/en/docs/deployment/docker-deploy/docker-pad.md b/content/en/docs/deployment/docker-deploy/docker-pad.md index 33702b20fdb..a1ff49f6784 100644 --- a/content/en/docs/deployment/docker-deploy/docker-pad.md +++ b/content/en/docs/deployment/docker-deploy/docker-pad.md @@ -171,19 +171,19 @@ This example assumes that your configuration is named Default. ## Environment Variables {#env-variables} -The Mendix Runtime can be configured using environment variables. A sample of the following environment variables are supported: +You can configure the Mendix Runtime by using environment variables. For example, the following environment variables are supported: | Environment Variable | Description | -|----------------------|-------------| -|`DATABASE_TYPE`|The type of the database (e.g., PostgreSQL, MySQL)| -|`DATABASE_HOST`|The hostname of the database server and the port of the database server| -|`DATABASE_NAME`|The name of the database| +| --- | --- | +| `DATABASE_TYPE` | The type of the database (for example, PostgreSQL, MySQL)| +| `DATABASE_HOST` | The host name and port of the database server | +| `DATABASE_NAME` |The name of the database | -From more information for more information, see https://docs.mendix.com/refguide/custom-settings/#introduction +For more information, see [Runtime Customization](/refguide/custom-settings/#introduction). ## Configuration File {#config-file} -Alternatively, you can configure the Mendix Runtime using a configuration file. The configuration file is a JSON file that contains the same settings as the environment variables. +Alternatively, you can configure the Mendix Runtime by using a configuration file. The configuration file is a JSON file that contains the same settings as the environment variables. ### Example Configuration File @@ -202,37 +202,35 @@ Alternatively, you can configure the Mendix Runtime using a configuration file. ### Using the Configuration File -To use the configuration file, you can upload the configuration file to the path of the configuration path: +To use the configuration file, you can upload the configuration file to the configuration path: -`docker run --rm -it -p 8080:8080 -e M2EE_ADMIN_PASS= /: \ - -v host_path/config.conf:container_path/config.conf` +`docker run --rm -it -p 8080:8080 -e M2EE_ADMIN_PASS= /: \ -v host_path/config.conf:container_path/config.conf` -You need to mount the volume so that Docker can find it. +You must also mount the volume so that Docker can find it. ## Logging -The Mendix Runtime logs to standard output by default. You can configure the log level using the MX_LOG_LEVEL environment variable. +The Mendix Runtime logs to a standard output by default. You can configure the log level using the `MX_LOG_LEVEL` environment variable. The following log levels are supported (in order of verbosity): -|Log Level|Description| -|---------|-----------| -|`TRACE`|Most verbose — logs all internal operations| -|`DEBUG`|Detailed diagnostic information| -|`INFO`|General operational messages (default)| -|`WARNING`|Potentially harmful situations| -|`ERROR`|Error events that may still allow the app to continue| -|`CRITICAL`|Severe errors that may cause the app to stop| - +| Log Level | Description | +| --------- | ----------- | +| `TRACE` | Most verbose — logs all internal operations | +| `DEBUG` | Detailed diagnostic information | +| `INFO` | General operational messages (default) | +| `WARNING` | Potentially harmful situations | +| `ERROR` | Error events that may still allow the app to continue | +| `CRITICAL` | Severe errors that may cause the app to stop | ## Health Checks The Mendix Runtime exposes health check endpoints that can be used to monitor the status of your app: -|EndPoint|Description| -|--------|-----------| -|`/health`|Returns the overall health status of the app| -|`/health/live`|Returns the liveness status — indicates if the app is running| -|`/health/ready`|Returns the readiness status — indicates if the app is ready to serve traffic| +| EndPoint | Description | +| -------- | ----------- | +| `/health` | Returns the overall health status of the app | +| `/health/live` | Returns the liveness status — indicates if the app is running | +| `/health/ready` | Returns the readiness status — indicates if the app is ready to serve traffic | These endpoints are especially useful when integrating with orchestration platforms such as Kubernetes, which rely on liveness and readiness probes to manage container lifecycle.