Хорошо, похоже, вы указываете пользовательскую сеть в обоих случаях, но на самом деле вы не называете их.Титульная тестовая сеть может использоваться только для ссылки на нее из этого же файла.
networks:
test-network:
external: true
Это эффективно создаст пользовательскую сеть, но без указания имени создаст имя по умолчанию [projectname] _test-network.Вы эффективно создаете две разные сети с помощью [имя_проекта] _test-network, поэтому он пытается создать сеть "dockernodemongo_test-network".
На вашем узле docker-compose вы можете попробовать:
networks:
test-network:
external:
name: [sharelatexname]_test-network
Это будет эффективно искать ранее существующую сеть с этим именем.В качестве альтернативы вы можете назвать сеть из первого созданного экземпляра, и это избавит вас от попыток выяснить имя.
sharelatex docker-compose:
networks:
test-network:
name: test-network
external: true
узел докера-compose:
networks:
test-network:
external:
name: test-network
Что касается того, почему он не создает сеть узла;"driver:" у вас нет существующего плагина под названием "external", есть несколько встроенных драйверов, которые добавляют ряд возможностей (например, multi-hosting) в вашу сеть, таких как bridge, overlay и macvlan.Вы также можете скачать другие пользовательские плагины.Я не верю, что они вам нужны для того, чего вы пытаетесь достичь.Кроме того, поскольку вы используете только одну сеть, все экземпляры «сетей:» в службах не нужны.Все они будут частью единственной указанной сети.«Network:» будет полезен, если у вас есть несколько сетей в одном и том же docker-compose и вы хотите изолировать / обозначить сети для определенных служб в нем.