27 Jul 2017
This is the third in a series of posts about getting started with Docker. In the first I set up Docker on my machine; the second covered running ColdFusion on Docker (with Lucee). My next step was to tackle Adobe ColdFusion (ACF), which turned out to be easier than anticipated.
We are looking for a way to find the MAC address of a client in Coldfusion. Is there a way to do this? We are using CF 9 on JDK 1.6 which, I believe, allows us to use the Java network layer, but I would prefer to get be closer to the CFML layer. 'Adobe ColdFusion acts as the core foundation for the TESISQUARE platform. For us, the most important capabilities of Adobe ColdFusion are rapid development support, easy integration with other systems, and security.' Gianluca Giaccardi, Chief Product Officer, TESISQUARE. I have been trying to install ColdFusion 11 on Mac OS X 10.10, 64 bit (Yosemite), but it fails. When I open the terminal and type java -version it says: java version '1.7.071' Java(TM) SE Runtime.
View and Download Adobe 38043755 - ColdFusion Enterprise - Mac installation manual online. Installation Guide. 38043755 - ColdFusion Enterprise - Mac Software pdf manual download.
Problem: There's no official Adobe ColdFusion Docker image.
I've heard, at various conferences and events, that Adobe will be releasing an official image sometime this year, but that doesn't help right now. I wasn't sure how best to proceed, so I hopped on the #docker channel in the CFML Slack group1 to ask how people handle this. Almost immediately, Eric Peterson pointed out that there's a CommandBox Docker image that enables you to spin up Adobe ColdFusion.2.
So, let's get started with the CommandBox Docker image:
The first step is to clone the repository to your local machine. So, open up the terminal, and navigate to wherever you store projects or tools. Then run:
- Now we need to edit the project's
docker-compose.yml
, so open that up in the code editor of your choice. - We're going to change the file substantially, so rather than try to explain it, you can just take a look at the end result below. I explain the changes there. It's set up for ACF 11 and you'll need to map it to your local project.
- Once you've made the changes outlined, just run the magical
docker-composeup
- The ColdFusion 11 image will download (it takes a bit longer than Lucee) and once it completes, you'll be able to access your project at http://127.0.0.1:8080/. I dumped the
server.coldfusion
, so this is what I saw:
- That's it! You're running an instance of Adobe ColdFusion (Developer Edition) in Docker. Now let's take a look at the
docker-compose.yml
file that made this possible.
Updated docker-compose.yml
First, here's the official reference for the docker-compose.yml file.
version
version:'3.3'
Updated to the latest version. Not an absolutely necessary change, but because I have the latest version of Docker installed, I can use the latest Docker Compose file format. There's nothing in this file that necessitates updating this from the 2.1
version that is currently set in the CommandBox repository.
image
image:ortussolutions/commandbox:latest
This is actually an important change. Setting the repository to use the latest version of the CommandBox image ensures that you have the latest stable version, with all available fixes. I had initially left this with the 3.6.0-snapshot
and it caused some issues.
ports
-'8080:8080'
Unchanged from the CommandBox repository. Simply map a port on your machine to a port in the container.
volumes
-/Users/matthew/www/projects/testing:/app
You'll want to map this to a folder somewhere on your own machine. It doesn't matter where it is. As I pointed out when setting up Lucee in the previous post, the mapping of volumes, like the mapping of ports, is based on the:
(colon) separator. Your local path is on the left, the image's path is on the right.
environment
These are passed into your container as environment variables.
PORT:8080
Let CommandBox know what port it should start the server on.
CFENGINE:adobe@11
For this post, this is the most important. It tells CommandBox that we want to run Adobe ColdFusion 11. You can find the available CF Engines on ForgeBox.io. Multiple major and minor releases of Adobe ColdFusion are available, as well as the Railo and Lucee server engines.
cfconfig_adminPassword:admin123
A handy feature to set the admin password for ColdFusion. If you don't set it, the password defaults to: commandbox. The username is: admin. This is set using a tool called CFConfig, which I plan on exploring further.
Wrap Up
Well, it was easier than anticipated to set up Adobe ColdFusion on Docker. That's not something you often hear.
There's obviously more that needs to be done in order to build this out into a proper development environment. In the coming weeks I want to explore what else we can do with CFConfig, working with databases, probably a few other issues that I haven't even considered yet.
Here's Adobe's post about it. If you're a ColdFusion developer, I cannot recommend it highly enough. The community is incredibly helpful. ↩
I haven't done a post on CommandBox, but again, if you're a ColdFusion developer, you really, really should be. It's hard to explain how helpful it is. If you've got questions about it, feel free to ask me, or, hit up Brad Wood. It will make your life easier, I promise. ↩
Related Posts
Note:Understand the various ColdFusion Server Profiles. See this document. |
Just before installing Adobe ColdFusion, review the ColdFusion product editions, system requirements, and other high-level considerations.
About the ColdFusion installation
ColdFusion provides a powerful and flexible installation and upgrade process. The ColdFusion installation process includes the following phases:
- Plan the installation by determining your installation, configuration, and upgrade options.
- Run the ColdFusion installer.
- (JEE configuration only) Deploy and configure ColdFusion on your JEE application server. The ColdFusion installation process supports the following scenarios:
- New installation Install ColdFusion on a computer with no earlier ColdFusion installation.
- Upgrade installation You can upgrade from ColdFusion (2016 release) or ColdFusion 11. When upgrading, the installer preserves the existing settings and installs in a new directory, automatically assigning ports that do not conflict with the existing installation. You can install ColdFusion 2018 in any of the following configurations:
Server configuration Lets you install ColdFusion with an embedded JEE server. This was formerly known as the stand-alone configuration. For enterprise and developer licenses, you can create and manage new ColdFusion instances. For information on installing the server configuration, see Installing the Server Configuration.
Note:ColdFusion does not offer a separate multi-server mode of installation.
- JEE configuration (Enterprise Edition only) Lets you deploy ColdFusion (2018 release) as a Java application running on a Java Enterprise Edition (JEE) application server, using a third-party JEE server, such as IBM WebSphere or Oracle WebLogic. When you use the JEE configuration, you can deploy ColdFusion multiple times on a single computer. For information on installing the JEE configuration, see Installing the JEE Configuration.
Installing ColdFusion
ColdFusion product editions
The ColdFusion product editions are available on the Adobe website. To view the product editions, go to www.adobe.com/go/learn_cfu_cfeditions_en.
System requirements
The ColdFusion system requirements are available on the Adobe website. To view the system requirements, including a list of supported JEE application servers, see www.adobe.com/go/learn_cfu_cfsysreqs_en.
Installation considerations
Before installing ColdFusion, review the considerations for installing or upgrading on your platforms.
Note: To use VisiBroker for CORBA connections in ColdFusion, see Enabling CORBA support (refer to Configuring your System) . |
- Adobe ColdFusion (2018 release), Adobe ColdFusion (2016 release) , ColdFusion 11, ColdFusion 10, and ColdFusion 9 can co-exist on the same system.
- In the case of ColdFusion cluster setup, any changes to the cluster settings, for example, adding a new member, or changing member port (in the ColdFusion Administrator) causes web server restart. This may result in page time-out.Refresh the page to resolve this issue.
- If ColdFusion uninstaller is not able to remove the connector for Apache (for example, in the case of Mac OS X), do the following to manually remove it:
- Delete the mod_jk.conf found
in {apache_install_location}/conf/ directory. - Delete {cfroot}/config/wsconfig/ folder which has the Apache connector file, mod_jk.so.
- Remove the following line from {apache_install_location}/conf/httpd.conf file:Include '{apache_install_location}confmod_jk.conf'.
- From the ColdFusion Administrator, when you wish to start multiple instances, start the cfusion instance first, and then start the other instances.
- When you run the ColdFusion uninstaller, the logs folder (ColdFusion_Home/cfusion/) is deleted.
- When you install ColdFusion, you can install the Administrator Component to start and stop remote server. Use the Remote Instance Administrator Component credentials to remotely start/stop the server from applications such as Server Manager, Instance Manager in ColdFusion Administrator, or ColdFusion Builder.
- JEE deployment of ColdFusion EAR or WAR on JRun is not supported. The EWS.jar }}must be present in the {{systemclasspath while deploying on a JEE server.
Installation considerations for all platforms
The following are installation considerations for all platforms:
Installation considerations for Windows
The following installation considerations are for Windows systems only: Camtasia for mac download free.
- Do not configure the server running ColdFusion as a Primary Domain Controller (PDC) or Backup Domain Controller (BDC). Adobe follows the Microsoft network model, in which the first level is the PDC or BDC. These systems only manage the network or domain and are not designed to run application servers. ColdFusion should reside on the second level of Microsoft Windows stand-alone systems. Stand-alone servers can participate in a network or domain.
- In IIS10's C:WindowsSystem32inetsrvConfigapplicationHost.config, in the '' section, IsapiFilterModule must be before HttpLoggingModule in the list. Otherwise, IIS may log CF requests incorrectly (For example, a request for domain.com/mypage.cfm may have cs-uri-stem logged as '/jakarta/isapi_redirect.dll' instead of '/mypage.cfm').
Coldfusion Mac Address
Installation considerations for UNIX
The following are installation considerations for UNIX systems only:
Coldfusion Machine Learning
- For troubleshooting purposes, the installer creates the following log file during an installation or upgrade in UNIX: cf_root/Adobe_ColdFusion_2016_InstallLog.log. If you contact AdobeTechnical Support for installation support, send them this file.
- If you are deploying the JEE configuration on a platform other than Linux or Solaris, use the ColdFusion_2018_WWEJ_java.jar. This Java-only installer does not include features that require platform-specific binary files, such as C++ CFX support.