#postgresql #docker #docker-compose #raspberry-pi
Вопрос:
Я использую образ docker arm64v8/postgres:14.0-alpine
, который отлично работает на моем локальном Pi4, но я хотел бы изменить файл pg_hba.conf (изменив некоторые настройки IP). Мой файл docker-compose (извлечение) выглядит следующим образом:
version: '2' services: postgres: image: arm64v8/postgres:14.0-alpine volumes: - database:/var/lib/postgresql/data ports: - 5432:5432 restart: unless-stopped environment: - POSTGRES_PASSWORD=xxx - POSTGRES_DB=xxx - POSTGRES_USER=xxx networks: - manager volumes: database: networks: manager: driver: bridge
Все работает нормально, но теперь я хотел бы, чтобы docker-compose переключил pg_hba.conf
файл /var/lib/postgresql/data/
в pg_hba.conf
мой локальный каталог (такой же, как файл docker-compose). Когда контейнер перезапускается, это должно быть сдержано.
Если есть лучшее решение, пожалуйста, дайте мне знать. Я хотел бы избежать создания собственных образов.
Спасибо
Комментарии:
1. Что мешает вам добавить том для этого файла?
2. Никогда не делал этого раньше :-). Как определить этот файл с помощью тома и убедиться, что он перезаписан? Спасибо за помощь
Ответ №1:
Мне кажется, что вы ищете это
volumes: - database:/var/lib/postgresql/data - ./pg_hba.conf:/var/lib/postgresql/data/pg_hba.conf:ro
Однако вы можете столкнуться с проблемой, связанной с монтированием тома docker и файла в одном и том же месте, поэтому другим решением является использование docker cp
команды для копирования файла в смонтированное место после запуска контейнера, которая должна сохранить его как часть тома.
Вы также можете не использовать том, а затем просто смонтировать файлы в обычную папку на вашем локальном компьютере, которую вы можете редактировать
Ответ №2:
Я решил это следующим образом. Создал файл Dockerfile с изображением и использовал Copy
его для копирования моего измененного файла.
FROM arm64v8/postgres:14.0-alpine COPY ./pg_hba.conf /var/lib/postgresql/data/