I'm running a Lucee app using docker with the comm...
# lucee
b
I'm running a Lucee app using docker with the commandbox image (v4.8.0), and recently the app was updated to use Lucee v6.0.1.83 from previously Lucee v5.3.1.102. I have just started getting errors when running docker-compose up (I did do it with --build one time) that state:
Copy code
Starting Server
  Sorry, no config provider could be found for [luceeServer@6.0.1+83]...
Contacting forgebox to determine the latest & greatest version...
WAR/zip archive already installed
And then it errors out with "Sorry, no config provider could be found for [luceeServer@6.0.1+83]. Please be more specific or check your spelling." The docker RUN command is: box server start cfengine=6.0.1.83 [...bunch of other flags] && box config set server.defaults.app.cfengine=6.0.1.83 server.defaults.web.AJP.enable=true What does no config provider could be found mean and why does it list "luceeServer" instead of just "lucee" as it is in the config? (I did a global search for "luceeServer" and there is no reference to that at least in the source code.
b
Are you on an old version of CFConfig
👀 1
I'll also note CFConfig doens't fully support Lucee 6 yet.
CFConfig writes out the XML file format, which Lucee 6 will ONLY read on first start.
On all subsequent starts, Lucee 6 will read its new JSON file
When CommandBox starts a server and the CFConfig module kicks in and tries to load in any config JSON or env vars you have, it detects the CF engine and version you are using, and then maps that to an internal "provider" that knows how to write the config for that CF engine and version
b
Re: your last comment, isn't the engine (I assume Lucee) and the version specified by cfengine={engine@version} in the RUN command the one that should be in use? Since the cfengine is specified, why can't a config for it be found I guess is where I'm confused. Or is there somewhere else that the engine and version is specified for use/installation? (I assumed that the commandbox image came with or downloaded the requested/builtin engine and versions and used that when starting the server).
b
This has little to do with the CommandBox server engine
The error is CFConfig not knowing what config provider to USE for that engine
☝️ CFConfig has a whole list of different providers it uses based on what server you're starting
Which is why I asked how old your version of CFConfig was
Copy code
list --system
👀 1
You may potentially be using some sort of setup so old, it's never heard of Lucee 6
I assume this has never worked, and you just recently tried spinning up Lucee 6 as a test on your existing setup?
b
Well that's the weird thing it was working for a few days after I pulled in the changes that someone else did to upgrade to Lucee 6 from 5. It happened after I ran docker-compose up --build just 20 min. Ago, so my guess is I was using some kind of cached build that still worked when running docker-compose up (?).
I'm going to ask them if they see the same thing, but I haven't heard it's not working yet and it's been a few days since the change. I'll need to understand cfconfig better and check out your links in the meantime
Took me a while to figure it out, but finally spun up an older setup before the upgrade changed to Lucee 6, shelled into the container and ran box list --system: Commandbox-cfconfig (1.0.6) cfconfig-services(1.6.4)
b
Holy cow, that's from 2020!!
How on earth is it so old?
b
😅
b
Lucee 6 didn't exist when that version of CFConfig was released
b
I just started working on this project and it's been in development for years. So not only am I new to CFML but trying to get my bearings in a long lived app as well. Good times
Right, so it sounds like we need to upgrade our cfconfig first to even attempt to use Lucee v6 is the impression I'm getting.
b
Yeah, do you know what version of CommandBox you're on?
Copy code
box info
👀 1
b
Looks like 4.8.0 CFML version: 5.2.9.31
b
low whistle
yeah, that's basically cave man ancient 😉
😆 1
CommandBox 6.0 is latest
CommandBox 4.8 released in Sept of 2019
The good news is CommandBox is generally very backwards compat
🙌 1
I don't think I really had any breaking changes to speak of in 6.0. Looks like 5.0 was backwards compat too per my release notes
b
Righto. Sooo I guess I'm going to play around with later versions of commandbox and update the image tag to :latest I guess. And bless you for the backwards compatibility!
👍 1
b
If you're using the Ortus docker image, some of the env var names may have changed, so review those
👍 1