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/