#docker #docker-compose #dockerfile
#docker #docker-compose #dockerfile
Вопрос:
Я использую Docker вместе с jboss/keycloak-ha-postgres
и postgres
изображениями.
У меня есть два разработчика, которые хотят поделиться данными postgres. Я пытаюсь понять, каков наилучший способ сделать это.
Я уже выяснил, как сохранить данные локально, используя volumes
атрибут в моем docker-compose.yml
файле:
version: '2'
services:
db:
container_name: keycloak-postgres
image: postgres
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
ports:
- "5432:5432"
volumes_from:
- data
keycloak:
container_name: keycloak
image: jboss/keycloak-ha-postgres
depends_on:
- "db"
environment:
POSTGRES_DATABASE: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
POSTGRES_PORT_5432_TCP_ADDR: postgres
POSTGRES_PORT_5432_TCP_PORT: 5432
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: admin123
links:
- "db"
ports:
- "8080:8080"
data:
container_name: keycloak-postgres-db-data
image: cogniteev/echo
command: echo 'Data Container for PostgreSQL'
volumes:
- /var/lib/postgresql/data
Один из подходов, о котором я думаю, включает в себя создание моего собственного образа Docker (с использованием Dockerfile и с помощью FROM cogniteev/echo
) тома и размещение его на DockerHub. Зафиксируйте и отправьте изменения в данные тома на DockerHub. Тогда мне пришлось бы обновить мой docker-compose.yml
файл, чтобы захватить это конкретное изображение вместо cogniteev/echo
.
Но я не уверен, что лучше всего сделать в этой ситуации.
Комментарии:
1. Здравствуйте, я понимаю, вы хотите отправить своим разработчикам базу данных, предварительно заполненную данными. Хорошо объясните, что вы хотите сделать с данными. Похоже, вы хотите предоставить общий доступ к файлу данных по общему сетевому пути, чтобы вы могли запустить один postgres от разработчика и одновременно предоставить общий доступ к данным. И это непрактично