I'm trying to upgrade Lucee to patch the recent se...
# docker-commandbox
t
I'm trying to upgrade Lucee to patch the recent security vuln, but I keep getting this error after restarting my container:
Copy code
You've asked for the engine [lucee@5.3.12.1] to be started,
   | but this server home already has [lucee@5.3.10+120] deployed to it!
   | In order to get the new version, you need to run 'server forget' on t
   | his server and start it again
If I ssh into the container and run 'box server forget', the whole instance shuts off before it completes. Then I tried from the host, running the command on the app directory, which succeeds, but after restarting the container, I get the same error. Any ideas? What does the
box server forget
actually do? Can I just do a
rm -rf
command on a directory to do it manually?
b
Stop using a pre-warmed image if you want to be able to specify your own version of Lucee
It doesn't make any sense to use a Docker container that already has Lucee downloaded and extracted into the server home only to have a build process that tries to use a different version of Lucee!
@Tim Badolato
t
Got it. Here's what I'm using: ortussolutions/commandbox:lucee5-alpine-3.4.4 Is there a pre-warmed container for 5.3.12.1?
b
Maybe, check the tags
@jclausen Just built new tags about 20 days ago after their release, but I'm not sure if he went back and built all the previous versions they patched
Alternatively, you can just use the vanilla image and specify whatever version you want and do your own warmup in the build
t
Yeah, I'll try that if my app doesn't like the version Jon used (5.4.3)
b
There's two known issues I've run into with the security updates • if you parse ANY XML with DTDs, you'll want to adjust your
this.xmlFeatures
in application.cfc • if you JSON serialize any CFC instances, there's a bug there fixed on the latest snapshot
j
Tim!!!! 🙂 No, I didn’t build any previous release images. If you want to use one of the older patched engines, you’ll need to start from the base image and then warm it up with that specific version.
👍 1
b
That and some occasional Query of query weirdness depending on what your app does
t
Jon!! Long time brother 🙂
Thanks Brad, I think I'm clear of those
j
Too long!
💯 1
Another advantage of not using a prewarmed image and building your own, if you are using an older version of Lucee is that you can update to the latest version of the image/CommandBox
t
Hmmm, I don't deploy much so I should probably just go for it
☝️ 1
j
Give it a whirl!
t
Will do! Thanks guys
🤙 1
I'm getting
Error loading shared library ld-linux-x86-64.so.2
when using the following Dockerfile:
Copy code
FROM ortussolutions/commandbox:alpine

RUN box install commandbox-fusionreactor
RUN box config set server.defaults.fusionreactor.port=123
RUN box config set server.defaults.fusionreactor.password=xyz
RUN box fr register "..."
I also tried a new pre-warmed image and I'm getting the same error: ortussolutions/commandbox:lucee5-alpine-3.7.12 This works with the old image.
j
I have seen that with the FR module before on the first start of a server. It seems to be intermittent but a chicken/egg issue. Your best bet is to warm up the server before you install the FR plugin, and then warm it up again to make sure the jar gets picked up.
t
Interesting, I'm using docker-compose btw
Copy code
wheelie_cfml1:
    container_name: cfml
    restart: always
    build: "."
    environment:
      cfconfigfile: "/app/.cfconfig.json"
      PORT: 8080
      SSL_PORT: 8443
      CFCONFIG_ADMINPASSWORD: ...
    volumes:
      - .:/app
    networks:
      - dbnet
j
In the previous image your server home was already seeded in this one it has to be seeded first. If you are using the Dockerfile, I suggest just warming it up. It may work without you having to re-warm the server
t
@jclausen Strange, even after pre-warming I am still getting this:
Copy code
Error occurred during initialization of VM
Could not find agent library /usr/lib/serverHome/fusionreactor/libfrjvmti_x64.so in absolute path, with error: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /usr/lib/serverHome/fusionreactor/libfrjvmti_x64.so)
b
@Tim Badolato FR doesn't support Alpine. Turn off the FR debugger in your server.json and then email FR support to vote on them supporting it :)
👍 1
t
Copy code
Hi Tim

Alpine is missing the Glibc libraries required for the debugger, and unfortunately we can't do anything about that. If an older version worked for you, you can download legacy versions from the download page.

If you disable the libs with the instructions in the guide here, you should still have monitoring and some system metrics.

Alpine is stripped back from an architecture perspective so getting it to have full monitoring capabilities is difficult, if you want full capabilities I would recommend switching to something like Debian or CentOS.

Kind Regards,

Nicholas Millard
@bdw429s fyi
b
Yeah, that's what they always say, but they could support MUSL Linux if they really wanted. They'd have to create a build for it that doesn't rely on the Glibc libs.
🤦‍♂️ 1