У меня есть простой Docker Файл:
version: "3"
volumes:
pg-data:
services:
db:
image: postgis/postgis
build: ./postgis
volumes:
- pg-data:/var/lib/postgresql
ports:
- 5432:5432
restart: on-failure
Мой Dockerfile
:
FROM postgis/postgis
USER root
COPY docker-entrypoint.sh /docker-entrypoint.sh
COPY data_load.sh /data_load.sh
RUN chmod +x /*.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
Мой docker-entrypoint.sh
:
exec /data_load.sh &
exec /docker-entrypoint.sh
Мой data_load.sh
:
until pg_isready -h localhost -p 5432
do
printf 'PostgreSQL not ready! \n'
sleep 15
done
echo "Loading data"
python /load_data.py &&
echo "Data load complete!"
При запуске docker-compose up --build
получаю:
...
Successfully built 88b291d6b47e
Successfully tagged postgis/postgis:latest
Creating my_compose_db_1 ... done
Attaching to my_compose_db_1
db_1 | Starting script to add data
db_1 | localhost:5432 - no response
db_1 | PostgreSQL not ready yet, trying again in 15 seconds
Проблема в том, что Postgres никогда не запускается! Скрипт data_load. sh выполняется, поскольку я вижу, что «PostgreSQL не готов!» распечатывается каждые 15 секунд. Идеи о том, что я делаю не так?