【发布时间】:2016-11-02 17:32:24
【问题描述】:
所以,我有一个具有这种结构的 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 有任何不同的解决方案(卷、添加、复制等)。我试图运行和 sh 脚本,什么都没有。
你能看到这个 docker-compose 和 Dockerfile 并帮助我吗?谢谢
Dockerfile:
FROM postgres:latest
ADD ./scripts/dev_data_setup.sql /docker-entrypoint-initdb.d
docker-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
【问题讨论】:
-
对我来说很合适。如果您执行到 postgres 容器中,您可以在
/docker-entrypoint-initdb.d/中看到您的文件。试试:docker-compose exec db ls -al /docker-entrypoint-initdb.d/。同时发布日志可能会有所帮助:docker-compose logs db -
好吧,关于
/docker-entrypoint-initdb.d/在 postgres 容器中,非常感谢! :) -
文件在那里。这是来自 db 的日志:
-
db_1 | LOG:数据库系统被中断;最后一次知道在 2016-11-02 17:11:33 UTC db_1 | LOG:数据库系统未正确关闭;正在自动恢复 db_1 |日志:0/14EE338 处的记录长度无效:想要 24,得到 0 db_1 |日志:不需要重做 db_1 |日志:MultiXact 成员环绕保护现已启用 db_1 | LOG:数据库系统已准备好接受连接 db_1 | LOG:autovacuum 启动器已启动
-
db_1 |致命:用户“用户”db_1 的密码验证失败 |详细信息:角色“用户”不存在。 db_1 |连接匹配 pg_hba.conf 第 95 行:“host all all 0.0.0.0/0 md5”
标签: postgresql docker docker-compose