![](/img/trans.png)
[英]Initialize PostgreSQL Container with docker-entrypoint-initdb.d script
[英]Docker PostgreSQL - Scripts in /docker-entrypoint-initdb.d doesn't run
所以,我有一個具有這種結構的docker-compose項目:
DockerDev
- docker-compose.yaml
- d-php
- Dockerfile
- scripts-apache
- d-postgresql
- Dockerfile
- scripts
- dev_data_setup.sql
- logs
- pgdata
- www
PHP,Redis,ElasticSearch都行。 但Postgresql沒有運行dev_data_setup.sql,我找到了/dockes-entrypoint-initdb.d的任何不同解決方案(volume,ADD,COPY等)。 我試圖運行和sh腳本,沒有。
你能看到這個docker-compose和Dockerfile並幫助我嗎? 謝謝
Dockerfile:
FROM postgres:latest
ADD ./scripts/dev_data_setup.sql /docker-entrypoint-initdb.d
泊塢窗,compose.yaml:
version: '2'
services:
php:
build: ./d-php/
hostname: www.domain.com
ports:
- "80:80"
volumes:
- ./www:/var/www/html
- ./d-php/scripts-apache2/apache2.conf:/etc/apache2/apache2.conf
- ./d-php/scripts-apache2/web.conf:/etc/apache2/sites-enabled/web.conf
- ./d-php/scripts-apache2/webservice.conf:/etc/apache2/sites-enabled/webservice.conf
- ./logs:/var/log/apache2
links:
- db
- redis
- elasticsearch
db:
build: ./d-postgresql/
volumes:
- ./pgdata:/pgdata
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- PGDATA=/pgdata
redis:
image: redis:latest
elasticsearch:
image: elasticsearch:2.4.1
所以我發現了問題。
謝謝你的幫助。
您的問題是由您在Dockerfile中使用ADD
的方式引起的:
FROM postgres:latest
ADD ./scripts/dev_data_setup.sql /docker-entrypoint-initdb.d
這將創建一個名為/docker-entrypoint-initdb.d
的文件,其中dev_data_setup.sql
文件的內容。 你想要的是將/docker-entrypoint-initdb.d
視為一個目錄。
您應該將ADD
命令更改為以下之一:
ADD ./scripts/dev_data_setup.sql /docker-entrypoint-initdb.d/
尾部斜杠將dest
參數視為目錄。 或者使用
ADD ./scripts/dev_data_setup.sql /docker-entrypoint-initdb.d/dev_data_setup.sql
其中將具體說明文件名。
參考: https : //docs.docker.com/engine/reference/builder/#/add
如果
<dest>
不以尾部斜杠結束,則將其視為常規文件,<src>
的內容將寫入<dest>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.