Error Launching Services: KeyError: 'ContainerConfig'

I deployed my site to Digital Ocean via docker once, it seemed to be missing a few things so deployed again and now I keep getting an error:

KeyError: ‘ContainerConfig’
Failed to execute script docker-compose
Error Launching Services

Testing the connection in the target shows Connection OK.

I’ve tried reconnecting Digital Ocean in the resource manager.

I’ve tried every version of Node available,

The full error:

Any ideas?

Is your docker desktop running?

Yes.

I’m wondering though, should the Docker Deploy Name match the running service in Docker?

Localhost:8100 is working correctly.

We are also getting this now… NEVER had an issue before updating today. Can start and stop the service on Digital Ocean but can not deploy.

Comparing to another Project that is deploying correctly there is a Providers directory (in the deployable Project) and not within the now failing Project? Would this make a difference? And why?

Did you update today? I think I might have done between the first upload try and the second but can’t remember exactly. Unfortunately I hadn’t set up GIT yet (duh!) so can’t try rolling back.

Yes updated today and only one Project having this issue. Even reverted to a backup and older version and still can’t deploy, but deployed fine until the update. Really scratching my head here…

Can’t be a coincidence we are both having the same error!

Seems to be some new global problem with docker desktop. Might be only with the latest version. You might want to try previous versions.

Some references:

With this in mind why would one Project build and deploy and another will not @George?

No other changes aside from today’s Wappler update.

How can we manually deploy remotely using docker compose rather than docker-compose?

@Heather_Mann

Can you use the Remote Host Server SSH and run:

docker compose version

And paste your response please?

Mine is:

Docker Compose version v2.25.0

Which is the Project that is failing to deploy.

Maybe this is a related issue?

To be totally honest we are at a total loss here as with regards on what to do… Very odd this only happened after the update as this morning was all fine and working!

Docker Compose version v2.17.2

Are you able to roll back to before the update?

Yes but we still have the issue. We are now considering rebuilding the droplet on Digital Ocean from a base image as possibly it is server side after updates were applied to the droplet.

Out of interest if you again SSH in to your droplet and enter:

lsb_release -a

What do you see as the response?

We are using an older version of Ubuntu but I understand you only recently created yours? ie, your droplet could be running a newer version of compose that came with the newer release of Ubuntu…

Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:        20.04
Codename:       focal

We can build and deploy locally no issue at all, but remotely for this droplet is a fail.

Right we are leaving it all alone for 48 hours to see if it is a Docker specific issue they roll out a fix for (very odd that only one Project is affected and on an update cycle too). In the meantime we are simply uploading our new files to the container… No need for a rebuild and deploy as the stack has not changed. At least this way we can update and stay online without disrupting our many thousands of users!

If we come up with a solution or explanation for why this has all of a sudden failed after today’s update we’ll share it @Heather_Mann

@George

How can we build using:

docker compose

Instead of:

docker-compose

It would be useful if we can set variables like this in the Docker Configuration:

That way we can do it on a Project by Project basis rather than globally, allowing for backward compatibility etc.

UPDATE:

Further digging reveals Wappler is not compatible with the latest Docker Compose/Build tools by the looks of it.

Apt Upgrade log from Droplet (updates were applied at 18.10pm GMT).

Start-Date: 2024-03-28  18:10:02
Commandline: apt upgrade
Install: ubuntu-pro-client:amd64 (31.2~20.04, automatic)
Upgrade: containerd.io:amd64 (1.6.28-1, 1.6.28-2), update-manager-core:amd64 (1:20.04.10.18, 1:20.04.10.20), update-notifier-common:amd64 (3.192.30.17, 3.192.30.19), snapd:amd64 (2.58+20.04.1, 2.61.3+20.04), ubuntu-advantage-tools:amd64 (30~20.04, 31.2~20.04), libgpgme11:amd64 (1.13.1-7ubuntu2.1, 1.13.1-7ubuntu2.2), **docker-ce-rootless-extras:amd64** (5:25.0.3-1~ubuntu.20.04~focal, 5:26.0.0-1~ubuntu.20.04~focal), python3-update-manager:amd64 (1:20.04.10.18, 1:20.04.10.20), **docker-buildx-plugin:amd64** (0.12.1-1~ubuntu.20.04~focal, 0.13.1-1~ubuntu.20.04~focal), ubuntu-pro-client-l10n:amd64 (30~20.04, 31.2~20.04), **docker-compose-plugin:amd64** (2.24.6-1~ubuntu.20.04~focal, 2.25.0-1~ubuntu.20.04~focal), **docker-ce:amd64** (5:25.0.3-1~ubuntu.20.04~focal, 5:26.0.0-1~ubuntu.20.04~focal), **docker-ce-cli:amd64** (5:25.0.3-1~ubuntu.20.04~focal, 5:26.0.0-1~ubuntu.20.04~focal)
End-Date: 2024-03-28  18:11:17
1 Like

@George how can we force a build to use…

docker compose

Instead of:

docker-compose

We need to deploy as we have SSL certificates that will expire before next weeks updates (assuming this will be fixed for next week that is). We desperately need a work-around in the meantime that does not involve rebuilding our droplets on Digital Ocean with base images.

Well as you stated from the release notes of docker compose it isn’t fully compatible with the old docker compose because it uses dashes instead of under scores for the project name.

So you have to run it with the compatibility on. I haven’t tested it yet but you can open a terminal in Wappler (make sure the right deploy target is selected first) and then run:

docker compose up —compatibility

1 Like