【问题标题】:Docker: docker-compose.yml file of nginx+mariadb+php+redisdocker:nginx+mariadb+php+redis的docker-compose.yml文件
【发布时间】:2016-03-21 14:35:18
【问题描述】:

我想写一个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的compose-file怎么写,想参考一些例子。而且,我用的是Docker Hub的官方镜像,url:https://hub.docker.com/explore/

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

【问题讨论】:

    标签: php mysql nginx docker centos7


    【解决方案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 配置,并且可能在这里和那里提供一些环境变量。

    我希望这会有所帮助。

    【讨论】:

    • 谢谢,7.0.4-cli7.0.4-fpm7.0.4-zts,我应该选择哪一个?hub.docker.com/_/php
    • 而且,在php7镜像的使用指南中,它会构建一个新镜像,包括我的项目和php-cli,是不是可以构建两个分开的镜像?
    • 如果我理解正确,您的项目图像应该扩展php:7.0.4-apachephp:7.0.4-fpm。使用 apache 的应该开箱即用,而使用 FPM 则需要从套接字切换到 TCP。一个镜像就足够了,它将是您构建和部署的镜像。出于开发目的,您可以根据需要使用其他映像,但您只需将项目文件挂载为卷即可。
    猜你喜欢
    • 1970-01-01
    • 2023-01-07
    • 2022-11-04
    • 2019-11-20
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多