Поэтому я пытаюсь настроить некоторые сценарии docker-compose, используя некоторые из последних функций compose 3.5. Большим из них является возможность называть сети. Итак, есть некоторые контейнеры, которые я в конечном итоге воспроизводить снова и снова, например, база данных Postgres, с различными приложениями, над которыми я работаю. Моя цель - иметь возможность создавать сценарий docker-compose для чего-то вроде Postgres с именованной сетью, к которому я затем могу добавить другие приложения со своими собственными сценариями docker-compose, просто добавляя их. Таким образом, он более пригоден для повторного использования.
В любом случае, вот сценарий docker-compose, с которым я работаю:
version: '3.5'
services:
postgres:
image: postgres:11
container_name: postgres
networks:
- pg_network
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_USER=user
ports:
- 5432:5432
volumes:
- ~/.postgresql/data:/var/lib/postgresql/data
- ~/.postgresql/init:/docker-entrypoint-initdb.d
pgadmin:
image: dpage/pgadmin4
container_name: pgadmin
networks:
- pg_network
ports:
- 5433:80
environment:
- PGADMIN_DEFAULT_EMAIL=user@gmail.com
- PGADMIN_DEFAULT_PASSWORD=password
volumes:
- ~/.postgresql/pgadmin:/var/lib/pgadmin
networks:
pg_network:
name: pg_network
Я пытаюсь использовать функцию «пользовательского имени», новую в Docker Compose 3.5. Смотрите эту ссылку для документации: https://docs.docker.com/compose/networking/
Однако, когда я пытаюсь запустить docker-compose up -d
, я получаю следующую ошибку:
ERROR: The Compose file './docker-compose.yml' is invalid because:
networks.pg_network value Additional properties are not allowed ('name' was unexpected)
Я не уверен, что я делаю неправильно. Я нахожусь на Ubuntu 18.04, я запускаю команды докера с sudo
(потому что это кажется требованием для Ubuntu).
Вот мои версии Docker и Docker Compose:
Docker version 18.09.2, build 6247962
docker-compose version 1.17.1, build unknown
Я пытался обновить их с помощью APT, но там говорится, что они обновлены.
Итак, я делаю ошибку в своем скрипте создания или что-то не так с моей версией Docker. Буду признателен за любые идеи, которые могут быть предложены. Спасибо.