Ответ 1
Сведения о файле docker-compose
-
Во-первых, я подумал об этом, потому что вы не используете опцию "ссылки", чтобы связать свой контейнер postgres с веб-контейнером - это хорошая практика, если вы не расширяете порты, но вы расширяете порт postgres.
-
Если вы хотите использовать наследование из изображения, которое вы разместили Вместо использования этой строки:
my_image/PostgreSQL: 9,3
использование:
docker/postgres
и создайте докеры /postgres пути и там разместите файл Docker с ингаляцией из контейнера, который вы хотите.
-
Я всегда использую разделы общего доступа в файле docker-compose.yml следующим образом:
.:/var/www/html
где .
- это мой путь к проекту, где я помещаю свои файлы кода.
Изображение, которое я создал для проверки этого случая
У меня нет всей структуры файлов докеров, чтобы воспроизвести эту ошибку и исправить ее, поэтому я создал состав docker-compose, который должен соответствовать вашим потребностям или помочь исправить вашу проблему:
version: '2'
services:
web:
build: docker/web
ports:
- "8080:8080"
links:
- dbpostgres
volumes:
- .:/var/www/html # I will share my code so I map this path
dbpostgres:
image: postgres
volumes:
- /private/var/lib/postgresql:/var/lib/postgresql
ports:
- "5432:5432"
environment:
POSTGRES_USER: pguser
POSTGRES_PASSWORD: pguser
POSTGRES_DB: pgdb
Примечания:
-
Я рекомендую использовать официальные изображения postgres
-
Я оставил комментарии рядом с строками.
Как я установил соединение:
host=dbpostgres port=5432 dbname=pgdb user=pguser password=pguser
Поскольку мой веб-контейнер знает имя хоста dbpostgres (имя изображения и имя домена), теперь я связываю их с помощью ссылок.
Если вам нужна база данных из существующего контейнера
Если вам нужна база данных из существующего контейнера, просто используйте опцию docker cp для копирования базы данных localy:
docker cp posgres_test:/var/lib/postgresql /private/var/lib/postgresql
где /private/var/lib/postgresql
- путь на вашем локальном хосте.
Вам также необходимо изменить учетные данные на db в документации док-станции на ваши старые учетные данные.
Вы должны сделать это, прежде чем запускать docker-compose, потому что, если db не существует, будет разбито.
Любые вопросы, дайте мне знать.