簡體   English   中英

Docker PostgreSQL - /docker-entrypoint-initdb.d中的腳本無法運行

[英]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

所以我發現了問題。

  • 第一:我的sql腳本試圖重新創建postgres用戶。 然后,dockedev_db退出。
  • 第二:我需要刪除與db相關的所有圖像到docker-compose再次運行腳本。

謝謝你的幫助。

您的問題是由您在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM