Skip to content

Can't run compose.up() when using a external network #50

@cz-lucas

Description

@cz-lucas

Hi,

I can't start my stack when using an external network.

NodeJS Version: v23.10.0
Docker Version: Docker version 28.0.1, build 068a01e
I am using the lastet versions of dockerode and dockerode-compose.

Docker compose

services:
  nginx:
    image: nginx
    networks:
      - reverse-proxy

networks:
  reverse-proxy:
    external: true
$ node
Welcome to Node.js v23.10.0.
Type ".help" for more information.
> var Dockerode = require('dockerode');
undefined
> var DockerodeCompose = require('dockerode-compose');
undefined
> var docker = new Dockerode();
undefined
> var compose = new DockerodeCompose(docker, '/tmp/docker-compose.yaml', 'nginx');
undefined
> (async () => {
...   await compose.pull();
...   var state = await compose.up();
...   console.log(state);
... })();
Promise {
  <pending>,
  [Symbol(async_id_symbol)]: 70,
  [Symbol(trigger_async_id_symbol)]: 6
}
> Uncaught:
Error: (HTTP code 500) server error - failed to set up container networking: Could not attach to network undefined: rpc error: code = NotFound desc = network undefined not found 
    at /workspaces/onboarding/node_modules/docker-modem/lib/modem.js:383:17
    at getCause (/workspaces/onboarding/node_modules/docker-modem/lib/modem.js:418:7)
    at Modem.buildPayload (/workspaces/onboarding/node_modules/docker-modem/lib/modem.js:379:5) {
  reason: 'server error',
  statusCode: 500,
  json: {
    message: 'failed to set up container networking: Could not attach to network undefined: rpc error: code = NotFound desc = network undefined not found'
  }
}
$ docker network ls
NETWORK ID     NAME                    DRIVER    SCOPE
x1go9sb9riuo   reverse-proxy           overlay   swarm

In another project with nuxt3 I am getting the following error (I am not allowed to share more of the code):

const startContainers= () => {
  const docker = new Docker({ socketPath: '/var/run/docker.sock' });
  var compose = new DockerodeCompose(docker, composeFilePath, "myApp");

  return compose.pull()
    .then((data) => {
      return compose.up();
    })
    .then(() => {
      return { success: true, message: 'Started' };
    })
    .catch((err) => {
      console.error('Error while starting: ', err);
      throw err;
    });
};
 ERROR  Error in process: Cannot read properties of null (reading 'external')

    at Object.buildNetworks (node_modules/dockerode-compose/lib/servicesTools.js:502:58)
    at Object.up (node_modules/dockerode-compose/lib/services.js:174:21)
    at Compose.up (node_modules/dockerode-compose/compose.js:55:40)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async node_modules/h3/dist/index.mjs:2009:19
    at async Object.callAsync (node_modules/unctx/dist/index.mjs:72:16)
    at async Server.toNodeHandle (node_modules/h3/dist/index.mjs:2301:7)

How can this be fixed?

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions