美文网首页docker
docker-compose搭建php开发环境

docker-compose搭建php开发环境

作者: lodestar | 来源:发表于2020-03-07 20:08 被阅读0次

        什么是编排呢?编排指的是同时管理多个容器的行为。
        docker-compose 是docker开源的单机容器编排工具,其前身是Orchard团队开源的Fig,目前已被Docker收购,并成为官方支持的解决方案。

    描述 命令
    启动docker-compose docker-compose up -d
    重启docker-compose docker-compose restart
    停止docker-compose docker-compose stop
    查看容器 docker-compose ps

    docker-compose默认指定的文件为docker-compose.yml

    #docker-compose版本为3
    version: '3' 
    #有3个服务php、nginx、redis
    services:
      php:
        #build可以编一个Dockerfile文件,image是使用别人的镜像
        #build: .
        image: "bitnami/php-fpm"
        container_name: php-dev
        restart: always
        networks:
        - dev-network
        #存储卷,本地文件路径:容器中文件路径
        #代码和php-fpm环境运行在一个容器中
        volumes:
        #自己需要修改,rbcore为代码目录
        - /home/qinyongbo/volume/php-config:/usr/local/php7/etc/
        - /home/qinyongbo/rbcore:/rbcore
        # command:
        # - /usr/local/php7/sbin/php-fpm
        environment:
          HOSTNAME: docker-01
          PROD_ENV: dev
      nginx:
        container_name: nginx-dev
        restart: always
        image: "nginx"
        networks:
        - dev-network
        #开放本地端口18080:容器中端口80
        ports:
        - "18080:80"
        - "18081:81"
        volumes:
        - /home/qinyongbo/volume/nginx-config:/etc/nginx
        depends_on:
        - php
      redis:
        container_name: redis-dev
        restart: always
        image: "redis"
        networks:
        - dev-network
    
    networks:
      dev-network:
        external: false
    

    /home/qinyongbo/volume/nginx-config为nginx的配置文件目录,修改default.conf配置文件

    server {
        listen       80;
        server_name  localhost;
        #需要修改路径
        root           /rbcore/generic;
        location / {
            index  index.html index.htm  index.php;
            if (-f $request_filename) {
                break;
            }
            if ($request_filename ~* "\.(js|ico|gif|jpe?g|bmp|png|css)$") {
                break;
            }
            if (!-e $request_filename) {
                rewrite ^/(.*) /index.php/$1 last;
            }
        }
        location ~ \.php($|/) {
            fastcgi_index  index.php;
            fastcgi_pass   php:9000;
            include        fastcgi_params;
            proxy_ignore_client_abort on;
    
            add_header Access-Control-Allow-Credentials true;
            set $path_info "";
            set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
            }
            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;
        }
    }
    

    请求执行路径:本机18080端口-》容器80端口-》进入nginx中,通过php:9000找到对应的php容器-》通过php-fpm执行代码。
    测试环境是否正常
    curl http://127.0.0.1:18080/index.php

    相关文章

      网友评论

        本文标题:docker-compose搭建php开发环境

        本文链接:https://www.haomeiwen.com/subject/sfvcdhtx.html