Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • docker-mule docker-mule
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • MulesoftMulesoft
  • docker-muledocker-mule
  • Wiki
  • Home

Home · Changes

Page history
Update home authored Jan 25, 2018 by Reynold Lariza's avatar Reynold Lariza
Show whitespace changes
Inline Side-by-side
home.md
View page @ 4e0b46a5
......@@ -23,6 +23,7 @@ Docker [Mule ESB Runtime](https://www.mulesoft.com/ty/dl/mule) container image f
If you find this image useful here's how you can help:
- Send a Merge Request with your awesome new features and bug fixes at https://git.whiteskylabs.com/mulesoft/docker-mule
- Be a part of the community and help resolve [Issues](https://git.whiteskylabs.com/mulesoft/docker-mule/issues)
---
......@@ -54,7 +55,7 @@ In your issue report please make sure you provide the following information:
---
# Prerequisites
Your docker host needs to have at least 2GB (or more) of available RAM to run Mule ESB Server Runtime. Please refer to the Mule ESB [hardware requirements](https://docs.mulesoft.com/mule-user-guide/v/3.8/hardware-and-software-requirements) documentation for additional information.
Your docker host needs to have at least 2GB (or more) of available RAM to run Mule ESB Server Runtime. Please refer to the Mule ESB [hardware requirements](https://docs.mulesoft.com/mule-user-guide/v/3.9/hardware-and-software-requirements) documentation for additional information.
---
# Installation
......@@ -63,7 +64,7 @@ Automated builds of the image are available on [Dockerhub](https://hub.docker.co
```bash
docker pull wslph/mule:3.8.4-ee
docker pull wslph/mule:3.9.0-ee
```
Example 1 : Launching Mule ESB Server runtime container for Community Edition
......@@ -71,8 +72,8 @@ Example 1 : Launching Mule ESB Server runtime container for Community Edition
```bash
docker run --restart=always --name mule-ce -d \
--publish 7777:7777 \
--env 'MULE_ENV=stg' \
wslph/mule:3.8.1-ce && docker logs -f mule-ce
--env 'MULE_ENV=dev' \
wslph/mule:3.9.0-ce && docker logs -f mule-ce
```
Example 2 : Launching Mule ESB Server runtime container for Enterprise Edition
......@@ -80,8 +81,8 @@ Example 2 : Launching Mule ESB Server runtime container for Enterprise Edition
```bash
docker run --restart=always --name mule-ee -d \
--publish 7777:7777 \
--env 'MULE_ENV=stg' \
wslph/mule:3.8.4-ee && docker logs -f mule-ee
--env 'MULE_ENV=dev' \
wslph/mule:3.9.0-ee && docker logs -f mule-ee
```
Example 3 : Attaching container to host network
......@@ -89,8 +90,8 @@ Example 3 : Attaching container to host network
```bash
docker run --restart=always --name mule-ee -d \
--net=host \
--env 'MULE_ENV=stg' \
wslph/mule:3.8.4-ee && docker logs -f mule-ee
--env 'MULE_ENV=dev' \
wslph/mule:3.9.0-ee && docker logs -f mule-ee
```
*Please refer to [Available Configuration Parameters](#available-configuration-parameters) to understand `MULE_ENV` and other configuration options*
......@@ -122,22 +123,110 @@ Volumes can be mounted in docker by specifying the `--volume` option in the dock
```bash
docker run --restart=always --name mule-ee -d \
--publish 7777:7777 --publish 1098:1098 --publish 25000:5000 --publish 8081:8081\
--env 'MULE_ENV=stg' \
--env 'MULE_ENV=dev' \
--env 'MULE_ESB_NAME=My-ESB-Server-01' \
--env 'MULE_MMC_AGENT_PORT=7777' \
--env 'MULE_MMC_URL=http://my-server.example.com/mmc-console' \
--env 'MULE_MMC_USERNAME=admin' \
--env 'MULE_MMC_PASSWORD=admin' \
--env 'MULE_MMC_AGENT_HOST=123.455.234.110' \
--volume ~/mule/apps:/opt/mule/apps \
--volume ~/mule/domains:/opt/mule/domains \
--volume ~/mule/conf:/opt/mule/conf \
--volume ~/mule/logs:/opt/mule/logs \
--volume ~/mule/patches:/opt/mule/patches \
wslph/mule:3.8.4-ee && docker logs -f mule-ee
--volume ~/mule/.mule:/opt/mule/.mule \
wslph/mule:3.9.0-ee && docker logs -f mule-ee
```
The `/opt/mule/patches` volume sole purpose is to copy (before the mule runtime is started) its content to `/opt/mule/lib/user` and applies only to each specific version of mule runtime (e.g., `3.6.2-ee` requires applying `SE-3341-3.6.2.jar` that fixes the mule application filename issue).
**Applying runtime patch**
The `/opt/mule/patches` volume sole purpose is to copy (before the mule runtime is started) its content to `/opt/mule/lib/user` and applies to specific version of mule runtime (e.g., `3.6.2-ee` requires applying `SE-3341-3.6.2.jar` that fixes the mule application filename issue). This allows maintenance of patch to an existing Mule runtime, requiring only a `docker restart <mule-container>`
**Registering to Anypoint Runtime Manager**
If you want to register your Mule ESB container to Anypoint Platform / Anypoint Runtime Manager, here's an example:
```bash
docker run --restart=always --name mule-ee -d \
--publish 1098:1098 --publish 25000:5000 --publish 8081:8081\
--env 'MULE_ENV=dev' \
--env 'MULE_ESB_NAME=My-ESB-Server-01' \
--env 'MULE_ARM_TOKEN=aaabbbcccdddeeefff...' \
--volume ~/mule/apps:/opt/mule/apps \
--volume ~/mule/domains:/opt/mule/domains \
--volume ~/mule/conf:/opt/mule/conf \
--volume ~/mule/logs:/opt/mule/logs \
--volume ~/mule/patches:/opt/mule/patches \
--volume ~/mule/.mule:/opt/mule/.mule \
wslph/mule:3.9.0-ee && docker logs -f mule-ee
```
**Registering to Mule Management Console**
If you want to register your Mule ESB container to a MMC server, here's an example:
```bash
docker run --restart=always --name mule-ee -d \
--publish 7777:7777 --publish 1098:1098 --publish 25000:5000 --publish 8081:8081\
--env 'MULE_ENV=dev' \
--env 'MULE_ESB_NAME=My-ESB-Server-01' \
--env 'MULE_MMC_AGENT_HOST=123.455.234.110' \
--env 'MULE_MMC_AGENT_PORT=7777' \
--env 'MULE_MMC_URL=http://my-server.example.com/mmc-console' \
--env 'MULE_MMC_USERNAME=admin' \
--env 'MULE_MMC_PASSWORD=admin' \
--volume ~/mule/apps:/opt/mule/apps \
--volume ~/mule/domains:/opt/mule/domains \
--volume ~/mule/conf:/opt/mule/conf \
--volume ~/mule/logs:/opt/mule/logs \
--volume ~/mule/patches:/opt/mule/patches \
--volume ~/mule/.mule:/opt/mule/.mule \
wslph/mule:3.9.0-ee && docker logs -f mule-ee
```
OR
```bash
docker run --restart=always --name mule-ee -d \
--publish 7777:7777 --publish 1098:1098 --publish 25000:5000 --publish 8081:8081\
--env 'MULE_ENV=dev' \
--env 'MULE_ESB_NAME=My-ESB-Server-01' \
--env 'MULE_MMC_AGENT_HOST=123.455.234.110' \
--env 'MULE_MMC_AGENT_PORT=7777' \
--env 'MULE_MMC_URL=http://my-server.example.com/mmc-console' \
--env 'MULE_MMC_HEADER_AUTH=Authorization:Basic YWRtaW46YWRtaW4=' \
--volume ~/mule/apps:/opt/mule/apps \
--volume ~/mule/domains:/opt/mule/domains \
--volume ~/mule/conf:/opt/mule/conf \
--volume ~/mule/logs:/opt/mule/logs \
--volume ~/mule/patches:/opt/mule/patches \
--volume ~/mule/.mule:/opt/mule/.mule \
wslph/mule:3.9.0-ee && docker logs -f mule-ee
```
You need to specify the following environment variables:
- `MULE_ESB_NAME`
- `MULE_MMC_AGENT_HOST`
- `MULE_MMC_AGENT_PORT`
- `MULE_MMC_URL`
- `MULE_MMC_USERNAME` and `MULE_MMC_PASSWORD` OR `MULE_MMC_HEADER_AUTH`
For further explanation of each environment variable, please take a look at *Available Configuration Parameters* section.
**IMPORTANT:**
In order to execute the registration script to MMC server, you need to do the following:
```
docker exec <container-name> mmc_setup
```
and it will provide a JSON response, which indicates wether registration is successful or not.
**Developer's Note:**
- *At the moment, this is the only way to register to MMC server. If you have a better way of doing this inside the container, I'd be happy to implement it and credit it to you. Thanks!*
**Available Configuration Parameters**
*Please refer the docker run command options for the `--env-file` flag where you can specify all required environment variables in a single file. This will save you from writing a potentially long docker run command.*
......@@ -147,10 +236,18 @@ Below is the complete list of available options that can be used to customize yo
| Parameter | Description |
|-----------|-------------|
| `MULE_ENV` | by default, its value is `dev`, it can be anything such as `sit`, `stg`, `prd`, or anything. This is accessible within Mule environment and mule application via `${mule.env}` |
| `MULE_MMC_AGENT_PORT` | This is the port for when you need to register this mule esb container to an MMC server. By default its value is `7777`, but you can change this to use other port (e.g., when you want to have multiple Mule esb runtime container on the same host. |
| `APP_CONFIG_PATH` | by default its value is empty, but it can be overwritten. However anything set here is relative to `/opt/mule/conf/` . This is accessible within Mule environment and mule application via `${mule.config.path}` |
| `MULE_STARTUP_ENV_CONFIG` | This is optional. Useful, when you need to specify some environment variable to mule upon start. For example you can pass a `-M-Dmule.vault.key=mulesoft` parameter. However, that this does not override the other environment variable in this table. |
| `APP_CONFIG_PATH` | By default its value is empty, but it can be overwritten. However anything set here is relative to `/opt/mule/conf/` . This is accessible within Mule environment and mule application via `${mule.config.path}` |
| `MULE_STARTUP_ENV_CONFIG` | Useful, when you need to specify some environment variable to mule upon start. For example you can pass a `-M-Dmule.vault.key=mulesoft` parameter. However, that this does not override the other environment variable in this table. |
| `MULE_ENV_OVERRIDE_DEFAULT` | 0 by default. If set to 1, it will load the existing host resources (e.g., `apps`, `domains`, and `conf`) of the host specified path at `--volume`. |
| `MULE_ARM_TOKEN` | If you want to register this container to Anypoint Runtime Manager, pass the token here. |
| `MULE_ESB_NAME` | Specify the name you want this container to use at Anypoint Management Center, or Mule Management Console. By default, it will generate its own name with a prefix of `MULE-ESB-` and appended with timestamp to register. |
| `MULE_MMC_URL` | Specify the URL where your MMC (Mule Management Console) is hosted (`https://<mmc-host>:<mmc-port>`). For example `https://mydomain.example.com/mmc` |
| `MULE_MMC_AGENT_HOST` | Specify the hostname and/or IP address where this server is hosted. For example `my-esb-server.example.com`, or `123.455.234.110` to complete the full url `http://<mmc-host>:MULE_MMC_AGENT_PORT/mmc-support`|
| `MULE_MMC_AGENT_PORT` | This is the port for when you need to register this mule esb container to an MMC server. By default its value is `7777`, but you can change this to use other port (e.g., when you want to have multiple Mule esb runtime container on the same host. |
| `MULE_MMC_USERNAME` | Specify the username to be used to authenticate to MMC, with premission to create, update, and delete server groups, as well as register new server. Note: If `MULE_MMC_HEADER_AUTH` is specified. This will be ignored. |
| `MULE_MMC_PASSWORD` | Specify the password for to be used to authentication. Note: If `MULE_MMC_HEADER_AUTH` is specified. This will be ignored. |
| `MULE_MMC_HEADER_AUTH` | Specify the default `header` for authorization to your MMC. Note: When specified, this will disable `MULE_MMC_USERNAME` and `MULE_MMC_PASSWORD`. For example, `Authorization:Basic YWRtaW46YWRtaW4=`|
| `MULE_MMC_SERVER_GROUP` | If specified, server will be registered and added into the specified server group. |
---
# Maintenance
......@@ -166,11 +263,13 @@ docker exec -it mule-ee bash
# References
* For available server runtime version please see [tags](https://hub.docker.com/r/wslph/mule/tags/)
* [Mule ESB User Guide](https://docs.mulesoft.com/mule-user-guide/v/3.8/)
* [Mule ESB User Guide](https://docs.mulesoft.com/mule-user-guide/v/3.9/)
* Container is based from [wslph/ubuntu:xenial-latest](https://hub.docker.com/r/wslph/ubuntu)
* Container is installed with the latest [Oracle JDK8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
* Mule Agent version is **1.7.0**
* Mule ESB 3.6.x containers are installed with Oracle JDK7, while Mule ESB version 3.7.x and up are installed with the Oracle JDK8.
* Mule Agent version is updated to **1.9.3** for Mule ESB Enterprise Edition v3.6.x to 3.9.x. Mule runtime v4.0.0 have v2.0 of this agent, therefore its not updated.
* [Mule ESB Runtime v4 documentation](https://mule4-docs.mulesoft.com/)
* MMC and AMC setup are not supported for Mule ESB Community Edition.
---
# About
Developed and maintained by [WhiteSky Labs](https://www.whiteskylabs.com), a Premier Partner of [MuleSoft®](https://www.mulesoft.com/) with the mission to be the #1 Certified Partner to deliver specialized API integration services.
\ No newline at end of file
Developed and maintained by [Reynold Lariza](https://www.linkedin.com/in/relariza/) of [WhiteSky Labs](https://www.whiteskylabs.com), a Premier Partner of [MuleSoft®](https://www.mulesoft.com/) with the mission to be the #1 Certified Partner to deliver specialized API integration services.
\ No newline at end of file
Clone repository
  • changelog
  • Home