সম্পাদনা - 23 জুলাই, 2015 থেকে
সরকারী postgres Docker ইমেজ চালানো হবে .sql
স্ক্রিপ্ট পাওয়া /docker-entrypoint-initdb.d/
ফোল্ডার।
সুতরাং আপনার যা যা প্রয়োজন তা হ'ল নিম্নলিখিত এসকিএল স্ক্রিপ্টটি তৈরি করা:
init.sql
CREATE USER docker;
CREATE DATABASE docker;
GRANT ALL PRIVILEGES ON DATABASE docker TO docker;
এবং এটি আপনার ডকফাইফিলে যুক্ত করুন:
Dockerfile
FROM library/postgres
COPY init.sql /docker-entrypoint-initdb.d/
কিন্তু জুলাই 8th, 2015, যেহেতু আপনি যদি চান সব একটি ব্যবহারকারী এবং ডাটাবেস তৈরি করা , এটা ঠিক করতে ব্যবহার করা সহজ POSTGRES_USER
, POSTGRES_PASSWORD
এবং POSTGRES_DB
বিভিন্ন পরিবেশের:
docker run -e POSTGRES_USER=docker -e POSTGRES_PASSWORD=docker -e POSTGRES_DB=docker library/postgres
বা একটি ডকফায়াইল সহ:
FROM library/postgres
ENV POSTGRES_USER docker
ENV POSTGRES_PASSWORD docker
ENV POSTGRES_DB docker
জুলাই 23, 2015 এর চেয়ে পুরানো চিত্রগুলির জন্য
পোস্টগ্রিস ডকার চিত্রের ডকুমেন্টেশন থেকে , এটি বলা হয়
[...] /docker-entrypoint-initdb.d
পরিষেবাটি শুরুর আগে আরও সূচনা করার জন্য এটি সেই ডিরেক্টরিতে পাওয়া কোনও * .sh স্ক্রিপ্টের উত্স তৈরি করবে
এখানে গুরুত্বপূর্ণ যা "পরিষেবা শুরু করার আগে" । এর অর্থ আপনার স্ক্রিপ্ট Make_db.sh পোস্টগ্রিজ পরিষেবা শুরু হওয়ার আগেই কার্যকর করা হবে, সুতরাং ত্রুটি বার্তাটি "ডাটাবেস পোস্টগ্রাসের সাথে সংযোগ স্থাপন করতে পারেনি" ।
এর পরে তথ্যের আরও একটি দরকারী অংশ রয়েছে:
আপনার প্রারম্ভিক অংশ হিসাবে যদি আপনাকে এসকিউএল কমান্ডগুলি কার্যকর করতে হয়, তবে পোস্টগ্রিসের একক ব্যবহারকারী মোড ব্যবহারের জন্য সুপারিশ করা হয়।
সম্মত হ'ল প্রথম বর্ণনায় এটি কিছুটা রহস্যজনক হতে পারে। এটি যা বলে তা হ'ল আপনার সূচনা স্ক্রিপ্টটির ক্রিয়াকলাপগুলি করার আগে একক মোডে পোস্টগ্রিজ পরিষেবাটি শুরু করা উচিত। সুতরাং আপনি নিম্নলিখিত হিসাবে আপনার make_db.ksh স্ক্রিপ্ট পরিবর্তন করতে পারে এবং এটি আপনি যা চান তার কাছাকাছি হওয়া উচিত:
দ্রষ্টব্য , নিম্নলিখিত প্রতিশ্রুতিতে এটি সম্প্রতি পরিবর্তিত হয়েছে । এটি সর্বশেষ পরিবর্তন সহ কাজ করবে:
export PGUSER=postgres
psql <<- EOSQL
CREATE USER docker;
CREATE DATABASE docker;
GRANT ALL PRIVILEGES ON DATABASE docker TO docker;
EOSQL
পূর্বে, --single
মোডের ব্যবহারের প্রয়োজন ছিল:
gosu postgres postgres --single <<- EOSQL
CREATE USER docker;
CREATE DATABASE docker;
GRANT ALL PRIVILEGES ON DATABASE docker TO docker;
EOSQL
gosu postgres postgres --single < /tmp/somefile.sql