我试图通过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:
image: postgres
您可能希望公开一些端口并挂载存储在pg中的数据,但这几乎就是这样。你可以在这里看一个更完整的例子(使用mysql而不是pg) - https://github.com/nezhar/wordpress-docker-compose/blob/master/docker-compose.yml
请注意,该链接使用docker compose的版本2,它的语法略有不同。
This is a nice repository使用PHP + Nginx + PostgreSQL + Composer
您应该访问它以查看其使用的PHP,Nginx和Postgres的其他配置文件,但它的docker-compose.yml
文件是这样的:
我删除了作曲家部分因为它与你的情况无关
)
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/