gpt4 book ai didi

php - 使用docker-compose在Docker中运行laravel/lumen

转载 作者:行者123 更新时间:2023-12-02 18:53:58 24 4
gpt4 key购买 nike

我正在学习微服务架构,我想设置一个简单的lumen应用程序,以便使用docker-compose在3个单独的容器中运行

  • 网络-这将运行我的Nginx前端服务器
  • 应用程序-这将运行我的php-fpm
  • 数据库-这将运行我的mysql服务器

  • 这是我的 docker-compose.yml
    version: '2'
    services:

    # The Web Server
    web:
    build:
    context: ./
    dockerfile: ./deploy/web.dockerfile
    working_dir: /var/www
    volumes_from:
    - app
    ports:
    - 8080:80
    depends_on:
    - app

    # The Application
    app:
    build:
    context: ./
    dockerfile: ./deploy/app.dockerfile
    working_dir: /var/www
    volumes:
    - ./:/var/www
    environment:
    - "DB_PORT=3306"
    - "DB_HOST=database"

    # The Database
    database:
    image: mysql:5.7
    volumes:
    - dbdata:/var/lib/mysql
    environment:
    - "MYSQL_ROOT_PASSWORD=secret"
    - "MYSQL_DATABASE=homestead"
    - "MYSQL_USER=homestead"
    ports:
    - "33061:3306"

    volumes:
    dbdata:

    deploy / web.dockerfile
    FROM nginx:alpine
    ADD deploy/vhost.conf /etc/nginx/conf.d/default.conf

    deploy / app.dockerfile
    FROM yavin/alpine-php-fpm:7.1
    COPY deploy/php.ini /etc/php7/conf.d/50-setting.ini
    COPY deploy/php-fpm.conf /etc/php7/php-fpm.conf

    deploy / php.ini
    max_execution_time=30
    max_input_time=60
    memory_limit=128M
    post_max_size=256M
    upload_max_filesize=256M
    error_reporting=E_ALL & ~E_DEPRECATED
    display_errors=On
    date.timezone=Europe/London

    deploy / php-fpm.conf
    [www]
    user = nobody
    group = nobody
    listen = [::]:9000
    chdir = /var/www
    pm = static
    pm.max_children = 5
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 3
    catch_workers_output = Yes

    vhost.conf
    server {
    listen 80;
    index index.php index.html;
    root /var/www/public;

    location / {
    try_files $uri /index.php?$args;
    }

    location ~ \.php(/|$) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass app:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    }

    当我运行 docker-compse up时,我可以看到一切运行正常:

    enter image description here

    enter image description here

    但是,当我访问 http://127.0.0.1:8080时,我在chrome中收到 This site can’t be reached错误。

    我在使用Docker Toolbox的Windows上,我的Docker版本是: Docker version 17.10.0-ce, build f4ffd25
    有什么想法如何在docker上正确设置LEMP堆栈以运行简单的lumen应用程序?

    最佳答案

    Docker Toolbox是Windows和Mac上适用于Docker的较旧解决方案。容器中没有本地主机代理(您不能使用localhost来访问容器公开的端口)。

    Docker Toolbox实际上附带了Docker Machine,该Docker Machine在后台运行虚拟机,并且该虚拟机具有IP地址。您可以使用以下方法获取IP地址:

    docker-machine ip

    要么:
    docker-machine ip default

    它会给您类似192.168.88.100的信息。然后,您将使用该地址访问暴露的端口,例如 http://192.168.88.100:8080/

    或者,您可以使用 docker-machine rm删除Docker Machine,卸载Docker Toolbox,然后安装Docker for Windows,这将允许您访问 localhost上已发布的容器端口。

    关于php - 使用docker-compose在Docker中运行laravel/lumen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47984514/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com