Copy link to clipboard
Copied
I'm trying to work with the Adobe ColdFusion docker images on an Apple M3. I have a `docker-compose.yml` file that contains the following:
services:
coldfusion:
image: adobecoldfusion/coldfusion:latest
container_name: coldfusion
hostname: coldfusion
platform: linux/amd64
ports:
- "80:8500"
- "443:8443"
environment:
- "acceptEULA=YES"
- "installModules=all"
- "password=P@ssword"
- "enableSecureProfile=false"
- "TZ=US/Pacific"
volumes:
- ./app:/app
networks:
- docker_network
...which should be pretty straightforward. However, when I start the container, the docker logs say this:
2025-02-11 10:15:31 Start Time: 18:15:31
2025-02-11 10:15:31 Updating webroot to /app
2025-02-11 10:15:31 Configuring virtual directories
2025-02-11 10:15:32 Updating password
2025-02-11 10:15:32 Skipping language updation
2025-02-11 10:15:32 Serial Key: Not Provided
2025-02-11 10:15:32 Previous Serial Key: Not Provided
2025-02-11 10:15:32 Starting ColdFusion
2025-02-11 10:15:32 Starting ColdFusion 2023 server ...
2025-02-11 10:15:39 ======================================================================
2025-02-11 10:15:39 ColdFusion 2023 server has been started.
2025-02-11 10:15:39 ColdFusion 2023 will write logs to /opt/coldfusion/cfusion/bin/../logs/coldfusion-out.log
2025-02-11 10:15:39 ======================================================================
2025-02-11 10:15:40 [] Checking server startup status...
2025-02-11 10:15:46 [] Checking server startup status...
2025-02-11 10:15:52 [] Checking server startup status...
2025-02-11 10:15:58 [] Checking server startup status...
The "checking server startup status..." message repeats every six seconds.
The coldfusion-out.log file (I trimmed all the "at java.lang... lines) is:
Dec 24, 2024 08:06:08 AM Information [main] - Starting logging...
Dec 24, 2024 08:06:08 AM Information [main] - Starting license...
Dec 24, 2024 08:06:09 AM Information [main] - Developer Edition enabled
Dec 24, 2024 08:06:52 AM Error [main] - Unable to install License package: java.lang.NoClassDefFoundError: coldfusion/license/UsageAnalytics/utils/f
java.lang.NoClassDefFoundError: coldfusion/license/UsageAnalytics/utils/f
Caused by: java.lang.ClassNotFoundException: coldfusion.license.UsageAnalytics.utils.f
Dec 24, 2024 08:06:52 AM Information [main] - Starting crypto...
Dec 24, 2024 08:06:52 AM Error [main] - Unable to install Cryptograpic package: java.lang.NullPointerException: Cannot invoke "coldfusion.server.LicenseService.isEnterprise()" because "licenseService" is null
java.lang.NullPointerException: Cannot invoke "coldfusion.server.LicenseService.isEnterprise()" because "licenseService" is null
Dec 24, 2024 08:06:52 AM Information [main] - Starting security...
Dec 24, 2024 08:06:52 AM Error [main] - Unable to install Security package: coldfusion.server.ServiceException: Cannot invoke "coldfusion.server.LicenseService.getServerType()" because the return value of "coldfusion.server.ServiceFactory.getLicenseService()" is null
coldfusion.server.ServiceException: Cannot invoke "coldfusion.server.LicenseService.getServerType()" because the return value of "coldfusion.server.ServiceFactory.getLicenseService()" is null
Dec 24, 2024 08:06:52 AM Error [main] - Unable to initialise CFStartupServlet:Cannot invoke "coldfusion.server.LicenseService.getServerType()" because the return value of "coldfusion.server.ServiceFactory.getLicenseService()" is null
Dec 24, 2024 08:06:52 AM Information [main] - Shutting down servlet container...
Has anyone experienced this, or resolved it?
Copy link to clipboard
Copied
Doing some more digging into this, it's clearly something with java and Rosetta 2 emulation on the Apple chip. Multiple sources have talked about how Java emulation under Rosetta 2 can have unexpected results. In this case, I'm running Docker 4.38.0, and under Settings > General, I disabled the "Use Rosetta for x86_64/amd64 emulation on Apple Silicon" checkbox, applied the settings, then re-checked it and applied the settings. It ended up working.
To be clear, I don't think this is a "solution" but it seems to have fixed my immediate problem. It's definitely not a cure.
Copy link to clipboard
Copied
After a machine restart, this has been happening again. I tried the same trick as yesterday but this time it didn't work, so it was clearly a coincidence.
Truth be told, I've been fighting this issue since the Adobe docker images were released. On Apple silicon, they just don't work, and despite numerous requests, the CF development team hasn't resolved it.
Copy link to clipboard
Copied
We're now running into this same issue. I also updated to macOS 15.3.1 last night and was worried doing so was to blame, but another colleague only updated Docker to 4.38.0 and is now seeing the issue.
And, yeah, we're surprised there's still no native Apple silicon support.
Copy link to clipboard
Copied
Copy link to clipboard
Copied
Have you ever been able to get the Adobe provided containers working on Apple silicon? I've been trying it on and off for four years now. Each time I do, I end up going back to the Commandbox containers and shking my fist at the sky.
Copy link to clipboard
Copied
Other than having those warning icons in Docker, our system pretty much works. But, I'll let @cf_john expand on this (he's a colleague).
Copy link to clipboard
Copied
Yes, but it did take some extensive development to basically rewrite the build process. A group of us spent the past few months getting it going. I created a GitHub repository with a pared down version of our project, feel free to use it. Let me know if you have any questions or run into issues.
Copy link to clipboard
Copied
This is unfortunate, but I'm not surprised that Apple silicon is not an important issue for the CF development team. They might not even have Apple silicon to test against, and no one runs production servers on it so it's probably a low priority for them. Fortunately, others in this thread like @cf_john have figured out a solution I think.