Run Apigee Emulator on Rancher Desktop

Due to enterprise level restrictions I can't use docker to deploy Apigee Emulator. Other than docker, does Apigee VS Code plug-in supports any other container engines? Rancher desktop, Podman, etc?

Solved Solved
1 7 850
1 ACCEPTED SOLUTION

Hey there. Is there restriction on using Docker Desktop due to the recent change in the licensing? Docker Desktop != Docker Engine. Docker Engine licensing terms have not changed (see https://docs.docker.com/subscription/).

But to your original question. I've had success switching out Docker Desktop and replacing it with colima and minikube (required a little more fiddling).

In my experience colima was an easier drop in replacement for Docker Desktop.

 

View solution in original post

7 REPLIES 7

Hey there. Is there restriction on using Docker Desktop due to the recent change in the licensing? Docker Desktop != Docker Engine. Docker Engine licensing terms have not changed (see https://docs.docker.com/subscription/).

But to your original question. I've had success switching out Docker Desktop and replacing it with colima and minikube (required a little more fiddling).

In my experience colima was an easier drop in replacement for Docker Desktop.

 

you mentioned you had to do some more fiddling with minikube. Can you share what was that ?

Hi kalathilajaymen, actually the fiddling actually with the VSCode extension. It's not something I would recommend as an update to the VSCode extension will revert your changes back to what is distributed. But if you are still determined to use minikube with the Apigee Emulator, then you will need to modify the VSCode extension.js. The change I did was update the 

emulatorBaseURL variable (coded to localhost) so that it used the minikube docker hostname instead. 

Thanks @joeywong . Somehow got it working with Rancher and setting up alias for nerdctl to docker. But will definitely try the above as well.

Can some share more info for changes for Minikube. I am able to get the container started but then I see this msg - Runtime is not Up.

when checked on the container logs I could see this error msg.

 

{
"level": "SEVERE",
"thread": "main",
"mdc": {},
"className": "com.apigee.messaging.configuration.MessageProcessorServiceImpl",
"method": "registerLoopBackServer",
"severity": "SEVERE",
"message": "Unable to instantiate Loop back Message processor service. for server http://0.0.0.0:8998 with error",
"formattedDate": "2022-04-23T19:50:17.521Z",
"logger": "MESSAGING.RUNTIME",
"exceptionStackTrace": "com.apigee.errors.http.server.ServiceFailureException{ code = protocol.http.SeverStartFailed, message = Failed to start server on \"localhost/127.0.0.1:8998\", associated contexts = []}\nCaused by: java.net.BindException: Address already in use\n\tat sun.nio.ch.Net.bind0(Native Method)\n\tat sun.nio.ch.Net.bind(Net.java:461)\n\tat sun.nio.ch.Net.bind(Net.java:453)\n\tat sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222)\n\tat sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)\n\tat com.apigee.nio.ServerChannel.bind(ServerChannel.java:35)\n\tat com.apigee.protocol.http.HTTPServer.start(HTTPServer.java:227)\n\tat com.apigee.messaging.adaptors.http.configuration.MessageProcessorHttpSkeletonFactory$1.start(MessageProcessorHttpSkeletonFactory.java:122)\n\tat com.apigee.messaging.configuration.MessageProcessorServiceImpl.registerLoopBackServer(MessageProcessorServiceImpl.java:356)\n\tat com.apigee.messaging.configuration.MessageProcessorServiceImpl.registerHttpServer(MessageProcessorServiceImpl.java:339)\n\tat com.apigee.messaging.configuration.MessageProcessorServiceImpl.start(MessageProcessorServiceImpl.java:186)\n\tat com.apigee.kernel.service.deployment.ServiceDeployer.startService(ServiceDeployer.java:173)\n\tat com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:73)\n\tat com.apigee.kernel.service.deployment.ServiceDeployer.deployDependantServices(ServiceDeployer.java:355)\n\tat com.apigee.kernel.service.deployment.ServiceDeployer.deploy(ServiceDeployer.java:78)\n\tat com.apigee.kernel.module.deployment.ModuleDeployer.deploy(ModuleDeployer.java:51)\n\tat com.apigee.kernel.MicroKernel.deployAll(MicroKernel.java:275)\n\tat com.apigee.kernel.MicroKernel.start(MicroKernel.java:156)\n\tat com.apigee.kernel.MicroKernel.main(MicroKernel.java:112)\n"
}

 

Looks like you have something else already bound to the port.

Caused by: java.net.BindException: Address already in use

Check to see what process is bound to port 8998

I'm running on Windows with Rancher Desktop. Works out of the box, no special configuration required.