Docker images for ColdFusion

IMPORTANT 8/18/2021

We have removed the tar files from our repositories. You can no longer download the tar files and use the images. 

All Docker images are now available in Amazon ECR and Docker Hub..

We have hosted the Docker images in Amazon ECR and Docker Hub. You can load the images in your local environment using the command below:

  • docker pull public.ecr.aws/adobe/coldfusion:latest

Once the image is available in your local system, you can then run the Docker commands. The name of the image will follow the tag conventions, which are listed below:

  • ColdFusion (2018 release): latest-2018
  • ColdFusion (2021 release): latest

ColdFusion EULA

Before proceeding, it is mandatory that you read the EULA.

EULA needs to be accepted, via an environment variable, acceptEULA, while running the container.

Environment Variables supported with ColdFusion (2021 release)

For a list of environment variables (see section below) for this image, enter:

docker run --rm -it adobecoldfusion/coldfusion:latest help

Supported commands: help, start, info, cli <.cfm> 

Webroot: /app 

CAR imports: CAR files present in /data will be automatically imported during startup.

Required ENV Variables: 
                acceptEULA=YES 
Optional ENV variables: 
                serial=<ColdFusion Serial Key> 
                previousSerial=<ColdFusion Previous Serial Key (Upgrade)> 
                password=<Password> 
                enableSecureProfile=<true/false(default)> 
                configureExternalSessions=<true/false(default)> 
                externalSessionsHost=<Redis Host (Default:localhost)> 
                externalSessionsPort=<Redis Port (Default:6379)> 
                externalSessionsPassword=<Redis Password (Default:Empty)> 
                configureExternalAddons=<true/false(default)> 
                addonsHost=<Addon Container Host (Default: localhost)> 
                addonsPort=<Addon Container Port (Default: 8993)> 
                addonsUsername=<Solr username (Default: admin)> 
                addonsPassword=<Solr password (Default: admin)> 
                addonsPDFServiceName=<PDF Service Name (Default: addonsContainer)> 
                addonsPDFSSL=<true/false(default)> 
                setupScript=<CFM page to be invoked on startup. Must be present in the webroot, /app> 
                setupScriptDelete=<true/false(default) Auto delete setupScript post execution> 
                language=<ja/en (Default: en)> 
                installModules=<Comma delimited list of modules to be installed by CF Package Manager,accepts 'all' for installing all the available packages> 
                importCFSettings=<A JSON file containing the CF Settings to be imported . Must be present in the webroot, /app> 
                importCFSettingsPassphrase=<Passphrase to import CF settings from an encrypted JSON file.> 
                importModules=<A text file containing packages to be imported. Must be present in the webroot, /app>

Usage

  • Use the below command to bring up the ColdFusion container in daemon mode with Admin password set as ‘ColdFusion123’ and to serialize ColdFusion image with a given serial number.

    docker container run -dt -p 8500:8500 -e acceptEULA=YES -e password=ColdFusion123 -e serial=<serialnumber> adobecoldfusion/coldfusion:latest
  • Return the version number of the installed ColdFusion.

    docker run --rm -it public.ecr.aws/adobe/coldfusion:latest info
  • Bring up ColdFusion container in daemon Mode with Admin password set as ‘ColdFusion123’ and secureprofile enabled.

    docker run -dt -p 8500:8500 -e acceptEULA=YES -e password=ColdFusion123 -e enableSecureProfile=true coldfusion:latest
  • By default, Administrator and Admin API modules are installed in the ColdFusion 2021 Image. To install /import modules in an image use the environment variable installModules/importModules. You can also import ColdFusion settings from a json file using the environment variable importCFSettings. 

    Run the command below to create a container that imports the ColdFusion settings from config.json and installs, for example, the modules scheduler and cfmongodb:

    docker container run -dt -p 8500:8500 -v /opt/mywebroot:/app -e acceptEULA=YES -e password=ColdFusion123 -e importCFSettings=config.json -e 	installModules=scheduler,cfmongodb coldFusion:2021.0.1 
  • By default, the deployment type and profile of ColdFusion 2021 image is Development. To change the profile & deployment type, use the environment variables ‘deploymenType’ & ‘profile’ .

    You can also set the allowed Ip List for ColdFusion Admin using the environment variable ‘allowedAdminIPList’. The IP List is set only when the profile is “Production Secure”.

    docker container run -dt -p 8535:8500 -e acceptEULA=YES -e  password=ColdFusion123 -e deploymentType=Production -e profile=”Production Secure” -e serial=<serialnumber> -e allowedAdminIPList=*.*.*.*,0.0.0.0  public.ecr.aws/adobe/coldfusion:latest
  • To run a CFM page /application that is outside the container, you need to map a volume to /app directory of the container. The webroot is reconfigured to point to the directory, /app. Run a CFM page test.cfm , present in /opt/mywebroot via CLI.

    docker run --rm -it -e acceptEULA=YES –v /opt/mywebroot:/app adobecoldfusion/coldfusion2021:latest cli  test.cfm
  • For importing configurations using CAR, the CAR archives mounted to the /data directory are automatically imported during startup. Use the following command to import CAR data.car present in opt/source: 

    docker container run -dt -p 8520:8500 -v /opt/source/:/data -v /opt/mywebroot/:/app -e 	acceptEULA=YES  aobecoldfusion/coldfusion2021:2021.0.2

ENVIRONMENT VARIABLES

You will have a docker image in your system tagged as ColdFusion:2021.0.1

The docker image accepts these additional environment variables:

  • installModules: A comma delimited list of modules to be installed by ColdFusion Package Manager,accepts 'all' for installing all the available packages.
  • importCFSettings: A JSON file containing the ColdFusion Settings to be imported . Must be present in the webroot, /app.
  • importCFSettingsPassphrase: Passphrase to import ColdFusion settings from an encrypted JSON file.
  • importModules: A text file containing packages to be imported. Must be present in the webroot, /app. CFPM has an option to export packages installed in a ColdFusion instance . The exported packages are listed in a text file and that text file can be used to import packages in any instance. This is supported using the environment variable importModules.
  • setDeploymentType: Set the deployment type of ColdFusion. By default, the type is 'Development'. The other possible values are - Production, Staging, Testing, or Disaster Recovery.
  • setProfile: Set the ColdFusion profile. By default, the profile is 'Development'. The other possible values are - Production, Production Secure.
  • allowedAdminIPList: Specify the list of IP addresses that are allowed to access ColdFusion Administrator. You can set the value only when the ColdFusion profile is Production Secure.

Environment Variables supported with ColdFusion (2018 release)

For a list of environment variables for this image, enter:

docker run --rm -it adobecoldfusion/coldfusion:latest-2018 help

Supported commands: help, start, info, cli <.cfm> 

Webroot: /app 

CAR imports: CAR files present in /data will be automatically imported during startup.

Required ENV Variables: 

                acceptEULA=YES 

Optional ENV variables: 

                serial=<ColdFusion Serial Key>
                previousSerial=<ColdFusion Previous Serial Key (Upgrade)> 
                password=<Password> 
                enableSecureProfile=<true/false(default)> 
                configureExternalSessions=<true/false(default)> 
                externalSessionsHost=<Redis Host (Default:localhost)> 
                externalSessionsPort=<Redis Port (Default:6379)> 
                externalSessionsPassword=<Redis Password (Default:Empty)> 
                configureExternalAddons=<true/false(default)> 
                addonsHost=<Addon Container Host (Default: localhost)> 
                addonsPort=<Addon Container Port (Default: 8989)> 
                addonsUsername=<Solr username (Default: admin)> 
                addonsPassword=<Solr password (Default: admin)> 
                addonsPDFServiceName=<PDF Service Name (Default: addonsContainer)> 
                addonsPDFSSL=<true/false(default)> 
                setupScript=<CFM page to be invoked on startup. Must be present in the webroot, /app> 
                setupScriptDelete=<true/false(default) Auto delete setupScript post execution> 
                language=<ja/en (Default: en)> 

Useful Docker Commands

To view a list of all running or stopped containers, enter:

docker ps -a

To check the status of the container, enter:

docker logs <containerID / containerName>

To stop a container, enter:

docker stop <containerID / containerName>

To remove a container, enter:

docker rm <container ID/ containerName>

Frequently Asked Questions

Extend ColdFusion base image

In this scenario, we shall extend the ColdFusion base image to register a MySQL driver, so that we can create a MySQL datasource using ColdFusion’s Admin API.

Dockerfile

FROM coldfusion:latest
COPY mysql-connector-java-commercial-5.1.25-bin.jar /opt/coldfusion/cfusion/lib

The file, mysql-connector-java-commercial-5.1.25-bin.jar, must be present in the current working directory.

In the webroot, create a cfm that uses ColdFusion’s Admin API to create a datasource. Let’s call the CFM page, setupColdFusion.cfm. Place the file in the mounted webroot volume.

<cfscript>
    // Login is always required. This example uses two lines of code.
    adminObj = createObject("component","CFIDE.adminapi.administrator");
    adminObj.login("ColdFusion123"); //CF Admin password
    // Create a MySQL datasource
    datasource = createObject("component", "CFIDE.adminapi.datasource");
    datasource.setMySQL5("SampleMYSqlDB", "database-host", "testDB");
</cfscript>

To build and bring up a container based on this image, run Docker compose. A Docker compose file is a tool for defining and running applications in a Docker container.

Create a docker-compose.yml file with the following content outside the directory that contains the above DockerFile and setupColdFusion.cfm. The directory that contains the above files must be named ‘app’.

Docker-compose.yml

version: "3" 
services:
    coldfusion: 
        container_name: myapp
        build:
          context: ./app
          dockerfile: Dockerfile
        image: app
        depends_on:
        - redis
        - addons
        ports:
        - "8500:8500"
        volumes:
        - "/opt/wwwroot:/app"
        env_file:
        - coldfusion.env
        healthcheck:
           test: curl -f http://addons:8989/solr/ || exit 1  
           interval: 1m
           timeout: 3s
        deploy:
           mode: replicated
           replicas: 2
           restart_policy:
              condition: on-failure
           update_config:
              parallelism: 1
              delay: 10s
        networks: 
        - webnet

    addons:
        container_name: mycfaddons
        image: addons
        environment:
        - acceptEULA=YES
        ports: 
        - "8989:8989"
        networks:
        - webnet

    redis:
        container_name: myredis
        image: redis:latest
        ports:
        - "6381:6379"
        volumes:
        - "redis_data:/data"
        networks:
        - webnet

volumes:
    redis_data:

networks:
    webnet: 

coldfusion.env

acceptEULA=YES
password=ColdFusion123

To run Docker compose, enter the following command:

docker-compose up -d

The ColdFusionpage, setupColdFusion.cfm is executed on container starts up, since the environment variable, ‘setupScript’ is configured appropriately.

You can access the administrator to ensure that the MySQL datasource is configured correctly.

ColdFusion Add-ons

Run the image

The ColdFusion (2021 release) add-ons image (for Solr and PDFg/CFHTMLtoPDF) are hosted in this location for ECR and Docker Hub.

You can pull the latest docker images of ColdFusion Addons from AWS (Amazon Web Services) ECR in your local environment using the following commands:

  • docker pull public.ecr.aws/adobe/coldfusionaddons:latest (ColdFusion 2021 Addons Update 2 )

  • docker pull public.ecr.aws/adobe/coldfusionaddons:latest-2021 (ColdFusion 2021 Addons Update 2 )

  • docker pull public.ecr.aws/adobe/coldfusionaddons2021:2021.0.2 (ColdFusion 2021 Addons Update 2)

  • docker pull public.ecr.aws/adobe/coldfusionaddons2021:latest (ColdFusion 2021 Addons Update 2)

The equivalent commands to pull the latest docker images of ColdFusion Addons from Docker Hub are:

  • docker pull adobecoldfusion/coldfusionaddons:latest (ColdFusion Addons 2021 Update 2)

  • docker pull adobecoldfusion/coldfusionaddons:latest-2021 (ColdFusion Addons 2021 Update 2)

  • docker pull adobecoldfusion/coldfusionaddons2021:2021.0.2 (ColdFusion 2021Addons Update 2)

  • docker pull adobecoldfusion/coldfusionaddons2021:latest (ColdFusion 2021 AddonsUpdate 2)

To pull the latest image of ColdFusion Addons (2018 release) from AWS ECR in your local environment use the following commands:

  • docker pull public.ecr.aws/adobe/coldfusionaddons:latest-2018 

  • docker pull public.ecr.aws/adobe/coldfusionaddons2018:2018.0.0 

  • docker pull public.ecr.aws/adobe/coldfusionaddons2018:latest 

To pull the latest image of ColdFusion Addons (2018 release) from Docker Hub in your local environment use the following commands:

  • docker pull adobecoldfusion/coldfusionaddons:latest-2018 (ColdFusion 2018 Update 12)

  • docker pull adobecoldfusion /coldfusionaddons2018:2018.0.12 (ColdFusion 2018 Update 12)

  • docker pull adobecoldfusion/coldfusionaddons2018:latest (ColdFusion 2018 Update 12)

docker run <product>:<version>

ENVIRONMENT VARIABLES SUPPORTED

To get the list of environment variables for this image, use the following command ,

ECR:

docker run --rm -it public.ecr.aws/adobe/coldfusionaddons:latest help 

Docker Hub:

docker run --rm -it adobecoldfusion/coldfusionaddons2021:latest help

Supported commands: help, start <.cfm>

Required ENV Variables:

                acceptEULA=YES

Optional ENV Variables:

                solrUsername=<SOLR-USERNAME>

                solrPassword=<SOLR-PASSWORD>

Environment variables

acceptEULA=YES 
solrUsername=<SOLR-USERNAME> 
solrPassword=<SOLR-PASSWORD> 
setupScript=setupColdFusion.cfm 
enableSecureProfile=true 
configureExternalSessions=true 
externalSessionsHost=redis 
externalSessionsPort=6379 
configureExternalAddons=true 
addonsHost=addons 
addonsPort=8989 
addonsUsername=admin 
addonsPassword=admin 
addonsPDFServiceName=addonsContainer 
addonsPDFSSL=false

Usage

ECR:

docker  run -dt  -p 8993:8993 -e acceptEULA=YES public.ecr.aws/adobe/coldfusionaddons:latest start
docker  run -dt  -p 8991:8991 -e acceptEULA=YES public.ecr.aws/adobe/coldfusionaddons:latest-2018 start


Docker Hub:

docker  run -dt  -p 8994:8993 -e acceptEULA=YES  -e solrUsername=admin -e solrPassword=admin adobecoldfusion/coldfusionaddons:latest
docker  run -dt  -p 8990:8991 -e acceptEULA=YES  -e solrUsername=admin -e solrPassword=admin adobecoldfusion/coldfusionaddons2018:latest start

Performance Monitoring Toolset

Not:

Run the following commands before you start a Performance Monitoring Toolset container:

  • The maximum count of open files must be more than 65536. Use the command,  ulimit -n 65536.
  • The maximum count of maps must be more than 262144. To increase the limit, use the command,  sysctl -w vm.max_map_count=262144.”

The Docker image for Performance Monitoring Toolset is available for ECR and Docker Hub.

Pull the image

The Docker image for Performance Monitoring Toolset(PMT) is available for ECR and Docker Hub.

You can pull the latest docker images of  PMT from AWS (Amazon Web Services) ECR in your local environment using the following commands:

  • docker pull public.ecr.aws/adobe/pmt:latest (PMT 2021 Update 2)

  • docker pull public.ecr.aws/adobe/pmt:latest-2021 (PMT 2021  Update 2)

  • docker pull public.ecr.aws/adobe/pmt2021:2021.0.2 (PMT 2021  Update 2)

  • docker pull public.ecr.aws/adobe/pmt2021:latest (PMT 2021  Update 2)

The equivalent commands to pull the latest docker images of PMT from Docker Hub are:

  • docker pull adobecoldfusion /pmt:latest (PMT 2021 Update 2) 

  • docker pull adobecoldfusion/ pmt:latest-2021 (PMT 2021  Update 2) 

  • docker pull adobecoldfusion/ pmt2021:2021.0.2 (PMT 2021 Update 2)

  • docker pull adobecoldfusion/pmt2021:latest (PMT 2021 Update 2)

To pull the latest image of PMT (2018 release) from AWS ECR in your local environment, use the following commands:

  • docker pull public.ecr.aws/adobe/pmt:latest-2018 (PMT 2018 Update 3)

  • docker pull public.ecr.aws/adobe/pmt2018:2018.0.3 (PMT 2018 Update 3)

  • docker pull public.ecr.aws/adobe/pmt2018:latest  (PMT 2018 Update 3)

To pull the latest image of PMT (2018 release) from Docker Hub in your local environment use the following commands:

  • docker pull adobecoldfusion/pmt:latest-2018 (PMT 2018 Update 3)

  • docker pull adobecoldfusion/pmt2018:2018.0.3 (PMT 2018 Update 3)

  • docker pull adobecoldfusion/pmt2018:latest (PMT 2018 Update 3)

Environment variables

To get a list of environment variables in the image, use the command:

docker run --rm -it public.ecr.aws/adobe/pmt:latest help
docker run --rm -it adobecoldfusion/pmt:latest help

Supported commands: help, start 

Required ENV Variables:

                acceptEULA=YES

                datastoreHost=<DATASTORE-HOSTNAME> 

                datastorePort=<DATASTORE-PORT>

Optional ENV Variables:

                startPMT=<true/false; default:true>

                startDatastore=<true/false; default:true> 

                dataStoreNodeName=<Name for identifying datastore node in a cluster. Default:not set>

                dataStoreMaster=<true/false; default:true, can be set to false on datastore instances added to a cluster>

                dataStoreNodes=["host1:port1", "host2:port2"]

Usage

To run the container with the EULA, use the command:

Docker Hub: 

docker run -dt -p 9101:9101 -e acceptEULA=YES -e datastoreHost=<ElasticSearchHostName> -e datastorePort=<ElasticSearchPort> -e startDatastore=false adobecoldfusion/pmt:latest start

ECR:

docker run -dt -p 9101:9101 -e acceptEULA=YES -e datastoreHost=<ElasticSearchHostName> -e datastorePort=<ElasticSearchPort> -e startDatastore=false public.ecr.aws/adobe/pmt:latest-2018 start

Extend image

pmt.env

acceptEULA=YES
datastoreHost=pmt
datastorePort=9200
startDatastore=true

coldfusion.env

acceptEULA=YES
password=ColdFusion123

docker-compose.yml

version: "3" 
services:
    
    coldfusion:
        container_name: coldfusion
        image: coldfusion:2018.0.1 
        ports:
        - "8500:8500"
        volumes:
        - "./webroot:/app"
        env_file:
        - coldfusion.env
        healthcheck:
           test: curl -f http://localhost:8500/ 
           interval: 1m
           timeout: 3s
        networks:
        - webnet

    pmt: 
        container_name: pmt
        image: docker run pmt:2018.0.0
        depends_on:
        - coldfusion
        ports:
        - "9101:9101"
        env_file:
        - pmt.env
        healthcheck:
           test: curl -f http://localhost:9101/  
           interval: 1m
           timeout: 3s
        networks: 
        - webnet

networks:
    webnet: 

API Manager

The Docker image for ColdFusion API Manager(APIM) is available for ECR and Docker Hub.

You can pull the latest docker images of  APIM from AWS (Amazon Web Services) ECR in your local environment using the following commands:

  • docker pull public.ecr.aws/adobe/apimanager:latest ( APIM 2021 )

  • docker pull public.ecr.aws/adobe/apimanager:latest-2021 (APIM 2021 )

  • docker pull public.ecr.aws/adobe/apimanager2021:2021.0.0 (APIM 2021)

  • docker pull public.ecr.aws/adobe/apimanager2021:latest (APIM 2021)

The equivalent commands to pull the latest docker images of PMT from Docker Hub are:

  • docker pull adobecoldfusion /apimanager:latest ( APIM 2021 )

  • docker pull adobecoldfusion/apimanager:latest-2021 (APIM 2021 )

  • docker pull adobecoldfusion/apimanager2021:2021.0.0 (APIM 2021)

  • docker pull adobecoldfusion/apimanager2021:latest (APIM 2021)

To pull the latest image of PMT (2018 release) from AWS ECR in your local environment use the following commands:

  • docker pull public.ecr.aws/adobe/apimanager:latest-2018 

  • docker pull public.ecr.aws/adobe/apimanager2018:2018.0.0 

  • docker pull public.ecr.aws/adobe/apimanager2018:latest 

To pull the latest image of PMT (2018 release) from Docker Hub in your local environment use the following commands:

  • docker pull adobecoldfusion/apimanager:latest-2018

  • docker pull adobecoldfusion /apimanager2018:2018.0.0

  • docker pull adobecoldfusion/apimanager2018:latest

Environment Variables

To get a list of environment variables supported with this image, enter:

docker run --rm -it public.ecr.aws/adobe/apimanager:latest help

Supported commands: help, start <.cfm>

Required ENV Variables: 

                apim_acceptEULA=YES 

Optional ENV Variables: 

                apim_serial=<Serial Key> 
                apim_previousSerial=<Previous Serial Key (Upgrade)> 
                apim_password=<API Manager Admin Password> 
                apim_datastoreHost=<Datastore Hostname> 
                apim_datastorePort=<Datastore Port> 
                apim_datastorePassword=<Redis (Datastore) Password> 
                apim_datastoreSeed=<Datastore Encryption Seed> 
                apim_analyticsHost=<Analytics Server Hostname> 
                apim_analyticsPort=<Analytics Server Port> 
                apim_analyticsClusterPort=<Analytics Server Cluster Port> 
                apim_analyticsClusterName=<ElasticSearch Cluster Name> 

Usage

ECR:

docker container run -dt -e acceptEULA=YES -e datastoreHost=<Datastore Hostname> -e datastorePort=<Datastore Port> -e analyticsHost=<Analytics Server Hostname> -e analyticsPort=<Analytics Server Port> -e analyticsClusterPort=<Analytics Server Cluster Port> -e analyticsClusterName=<ElasticSearch Cluster Name> public.ecr.aws/adobe/apimanager:latest

Docker Hub:

docker run -dt -p 8500:8500 -e acceptEULA=YES -e datastoreHost=<Hostname> -e datastorePort=6378 -e analyticsHost=10.42.70.250 -e analyticsPort=9201 -e analyticsClusterPort=<Cluster Port> -e analyticsClusterName=<ElasticSearch Cluster Name> apimanager:latest

Extend APIM Base Image

docker-compose.yml

version: "3"
services:      
    analytics:
        container_name: analytics
        image: public.ecr.aws/adobe/apimanageraddons:latest
        env_file:
        - analytics.env
        networks:
        - webnet

    datastore:
        container_name: datastore
        image: public.ecr.aws/adobe/apimanageraddons:latest
        env_file:
        - datastore.env
        networks:
        - webnet
        ports:
        - "9200:9200"
        - "9300:9300"

    apim:
        container_name: apimanager
        image: public.ecr.aws/adobe/apimanager:latest
        ports:
        - "9000:9000"
        env_file:
        - apimanager.env
        networks:
        - webnet
        depends_on:
        - datastore
 
networks:
    webnet:

apimanager.env

acceptEULA=YES
serial=<enter serial number>
apimPassword=APIManager123
datastoreHost=datastore
datastorePort=6379
datastorePassword=MyRedisPassword
analyticsHost=analytics
analyticsPort=9200
analyticsClusterPort=9300
analyticsClusterName=groot-analytics

analytics.env

acceptEULA=YES
startAnalyticsService=true
analyticsClusterName=groot-analytics

datastore.env

acceptEULA=YES
startDatastoreService=true
datastorePassword=MyRedisPassword
Adobe logosu

Hesabınıza giriş yapın