PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

डोकर कंटेनर में PostgreSQL के साथ अनुमति समस्या

दूसरा उत्तर वास्तव में समस्या के मूल कारण की ओर इशारा करता है, हालाँकि यह जिस सहायता पृष्ठ की ओर इशारा करता है, उसमें कोई समाधान नहीं है। मेरे लिए यह काम करने के लिए मैं यहां आया हूं:

  1. अपनी सामान्य docker-compose फ़ाइल का उपयोग करके कंटेनर को प्रारंभ करें, यह हार्डकोडेड uid:gid (999:999) के साथ निर्देशिका बनाता है
version: '3.7'

services:
  db:
    image: postgres
    container_name: postgres
    volumes:
      - ./data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: fake_database_user
      POSTGRES_PASSWORD: fake_database_PASSWORD
  1. कंटेनर को रोकें और मैन्युअल रूप से स्वामित्व को uid:gid में बदलें जो आप चाहते हैं (मैं इस उदाहरण के लिए 1000:1000 का उपयोग करूंगा
$ docker stop postgres
$ sudo chown -R 1000:1000 ./data 
  1. अपना वांछित uid:gid जोड़ने के लिए अपनी docker फ़ाइल संपादित करें और docker-compose का उपयोग करके इसे फिर से प्रारंभ करें (user: पर ध्यान दें )
version: '3.7'

services:
  db:
    image: postgres
    container_name: postgres
    volumes:
      - ./data:/var/lib/postgresql/data
    user: 1000:1000
    environment:
      POSTGRES_USER: fake_database_user
      POSTGRES_PASSWORD: fake_database_password

जिस कारण से आप केवल user: का उपयोग नहीं कर सकते प्रारंभ से ही यह है कि यदि छवि किसी भिन्न उपयोगकर्ता के रूप में चलती है तो यह डेटा फ़ाइलें बनाने में विफल रहती है।

छवि दस्तावेज़ीकरण पृष्ठ पर , यह /etc/passwd . को उजागर करने के लिए वॉल्यूम जोड़ने के समाधान का उल्लेख करता है --user providing प्रदान करते समय छवि में केवल पढ़ने के लिए फ़ाइल के रूप में फ़ाइल विकल्प, हालांकि, मेरे लिए नवीनतम छवि के साथ काम नहीं किया, क्योंकि मुझे निम्न त्रुटि मिल रही थी। वास्तव में तीन प्रस्तावित समाधानों में से किसी ने भी मेरे लिए काम नहीं किया।

initdb: error: could not change permissions of directory "/var/lib/postgresql/data": Operation not permitted


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे pg_sleep () PostgreSQL में काम करता है

  2. जेपीए फ्लश बनाम प्रतिबद्ध

  3. पोस्टग्रेज़ डॉकर छवि का उपयोग करके डेटा कैसे बनाए रखें?

  4. कैसे django 1.10 में पूर्ण पाठ खोज के साथ 'अस्वीकार्य' का उपयोग करें?

  5. पोस्टग्रेस/पोस्टग्रेस्क्ल/पीएसक्यूएल में टिप्पणी चरित्र/पात्र?