Postgresql Docker构建php+;nginx+;分离容器中的pgsql
我正试图通过Postgresql Docker构建php+;nginx+;分离容器中的pgsql,postgresql,docker,docker-compose,dockerfile,Postgresql,Docker,Docker Compose,Dockerfile,我正试图通过docker compose在分离的容器中创建一个php7+nginx+pgsql开发环境 这是我的docker compose.yml: webserver: build: ./nginx ports: - "8888:80" volumes: - ./site.conf:/etc/nginx/conf.d/default.conf links: - php-fpm php-fpm: build: ./php-fpm volumes
docker compose
在分离的容器中创建一个php7+nginx+pgsql开发环境
这是我的docker compose.yml
:
webserver:
build: ./nginx
ports:
- "8888:80"
volumes:
- ./site.conf:/etc/nginx/conf.d/default.conf
links:
- php-fpm
php-fpm:
build: ./php-fpm
volumes:
- /path/to/codes/:/var/www/
现在我只是缺少了pgsql
如何将
pgsql
添加到docker compose.yml
?您可能需要对其进行一些调整,但只需添加以下子句即可实现这一点:
db:
图片:博士后
您可能希望公开一些端口并挂载存储在pg中的数据,但这几乎可以做到。
您可以在这里查看一个更完整的示例(使用mysql而不是pg)——
请注意,该链接使用的是docker compose版本2,其语法略有不同。与PHP+Nginx+PostgreSQL+Composer一起使用
您应该访问它以查看它所使用的PHP、Nginx和Postgres的其他配置文件,但它的docker compose.yml
文件是这样的:(我删除了composer部分,因为它与您的情况无关)
version: '3'
services:
web:
image: nginx
volumes:
- ./.docker/conf/nginx/default.conf:/etc/nginx/conf.d/default.conf
- .:/var/www/html
ports:
- 80:80
restart: always
depends_on:
- php
- db
php:
build: .docker
restart: always
volumes:
- ./.docker/conf/php/php.ini:/usr/local/etc/php/conf.d/php.ini
- ./.docker/conf/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
- .:/var/www/html
db:
image: postgres:10.1
restart: always
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
ports:
- 5432:5432
volumes:
- ./.docker/conf/postgres/:/docker-entrypoint-initdb.d/