前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用 Docker 搭建 PHP+Nginx+Laravel 开发环境

利用 Docker 搭建 PHP+Nginx+Laravel 开发环境

作者头像
星哥玩云
发布2022-07-28 14:09:47
7890
发布2022-07-28 14:09:47
举报
文章被收录于专栏:开源部署

制作镜像

由于官方php:7.2.2-fpm-alpine3.7 镜像不含composer,而单独做一个composer镜像又会依赖php镜像,所以应该在php镜像中添加composer.Dockerfile如下:

代码语言:javascript
复制
FROM php:7.2.2-fpm-alpine3.7
LABEL maintainer="php-composer Docker Maintainers <ikodota@gmail.com>"

RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
php composer-setup.php && \
php -r "unlink('composer-setup.php');" && \
mv composer.phar /usr/local/bin/composer && \
composer self-update

生成镜像

代码语言:javascript
复制
docker build -t bx-php:7.2.2-fpm-alpine3.7

准备配置文件:

我的本地配置文件为 /data/server/conf/nginx/conf.d/member.conf

代码语言:javascript
复制
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /app/public;
        index  index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$query_string;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   phpfpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /app/public/$fastcgi_script_name;
        include        fastcgi_params;
    }
}

运行docker

运行一个本地数据卷
代码语言:javascript
复制
docker run --name vc_member \
    -v /data/wwwroot/retail/member/src:/app \
    -v /data/server/conf/nginx/conf.d:/etc/nginx/conf.d \
    alpine:latest 
执行php-fpm
代码语言:javascript
复制
docker run --name phpfpm -d \
--volumes-from vc_member \
bx-php:7.2.2-fpm-alpine3.7 

需要进入phpfpm容器,修改一些配置和文件权限,以及执行composer install /composer update等。 注意: 1.执行composer install 时,可能会出现“root用户不能使用的情况”,需要执行:composer install --no-plugins --no-scripts 2.【非常重要】进入phpfpm容器:docker exec -it phpfpm sh 然后修改“ listen = 127.0.0.1:9000” 为“listen = 9000” 否则连不上php 3.允许nginx用户访问:chown -R www-data:www-data /app 4.赋予storage目录写权限:chmod -R 755 /app/storage

运行nginx
代码语言:javascript
复制
docker run --name nginx -p 8080:80 -d \
--volumes-from vc_member \
--link phpfpm:php \
nginx:1.13.8-alpine

这样直接输入网址就可以打开了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 制作镜像
  • 准备配置文件:
  • 运行docker
    • 运行一个本地数据卷
      • 执行php-fpm
        • 运行nginx
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档