Tôi mới vào docker. Tôi đã mở rộng hình ảnh PostgreSQL và có thể tạo ra thể hiện DB mới trong khi chạy image.I cần tạo các bảng trong DB đó từ kịch bản lệnh shell sẽ thực thi tệp .sql. Trong khi chạy hình ảnh PostgreSQL nó nói rằng máy chủ không bắt đầu? cách chúng tôi có thể thực thi tập lệnh chỉ sau khi máy chủ PostgreSQL khởi động trong vùng chứa docker?Tạo bảng trong hình ảnh docker PostgreSQL
Dockerfile:
FROM postgres:9.3
ENV POSTGRES_USER docker
ENV POSTGRES_PASSWORD docker
ENV POSTGRES_DB docker
RUN apt-get update && apt-get install -y postgresql-9.3 postgresql-client-9.3 postgresql-contrib-9.3
ADD initialize.sh /home/MM0312/docker-entrypoint-initdb.d/initialize.sh
CMD ["/home/MM0312/docker-entrypoint-initdb.d/initialize.sh"]
initialize.sh
#!/bin/bash
set -e
set -x
echo "******PostgreSQL initialisation******"
gosu docker psql -h localhost -p 5432 -U docker -d $docker -a -f createDatabase.sql
createDatabase.sql tập tin
REATE TABLE web_origins (
client_id character varying(36) NOT NULL,
value character varying(255)
);
cảm ơn, nó đã hoạt động. –
Làm thế nào để xử lý việc này với docker soạn? – kamal
Chúng ta chỉ cần sao chép điều này, như tôi có thể thấy trong trường hợp của tôi db.sql được sao chép trong thư mục docker-entrypoint-initdb.d, nhưng các lệnh sql không chạy. – kamal