Docker:nginx + mariadb + php + redis的docker-compose.yml文件

时间:2016-03-21 14:35:18

标签: php mysql nginx docker centos7

我想写一个nginx + mariadb + php + redis的docker-compose.yml,
我阅读了有关compose-file的文档,url:https://docs.docker.com/compose/compose-file/#versioning
格式是这样的:

version: '2'
services:
  web:
    build: .
    ports:
     - "5000:5000"
    volumes:
     - .:/code
    networks:
      - front-tier
      - back-tier
  redis:
    image: redis
    volumes:
      - redis-data:/var/lib/redis
    networks:
      - back-tier
volumes:
  redis-data:
    driver: local
networks:
  front-tier:
    driver: bridge
  back-tier:
    driver: bridge

但是我不知道如何编写nginx + mariadb + php + redis的撰写文件,我想参考一些例子。而且,我使用Docker Hub的官方图片,网址:{{3 }}

** ps:**软件版本:
操作系统:centos7.2
nginx的:最新
PHP:最新
MariaDB的:最新
redis:最新

1 个答案:

答案 0 :(得分:1)

我会按照以下方式处理:

version: '2'

services:
    web:
      container_name: my_app
      build: .
      links:
        - redis
        - mariadb

    nginx:
      container_name: nginx
      image: nginx
      links:
        - my_app
      ports:
        - 80:80
        - 443:443

    redis:
      container_name: redis
      image: redis

    mariadb:
      container_name: mariadb
      image: mariadb

因此,为您的项目创建一个dockerfile,并通过添加自述文件来扩展官方PHP映像。

此docker-compose.yml将启动您的容器并将其链接到nginx容器。这意味着它将在my_app主机名下提供,您需要添加自己的nginx配置以将请求传递给该容器。

Redis是一个mariadb也将由docker-compose触发,并将在主机名redismariadb下的应用容器中提供。

Nginx应该是唯一在主机上公开端口的容器。

上面的dockerfile不是一个完整的解决方案,你需要添加一个nginx配置,并可能在这里和那里提供一些环境变量。

我希望这会有所帮助。