搭建Nginx+PHP8.1 Docker服务后,如何配置Laravel、Composer及NPM
实现Laravel、Composer、NPM部署及命令执行方案
一、基于Laravel Sail的快速实现(你已切换到Sail,优先采用此方案)
Laravel Sail已经内置了Laravel运行所需的完整环境,包括Nginx、PHP、Composer、NPM等,直接按以下步骤操作即可:
- 若你是新建Laravel项目,直接用Sail初始化:
curl -s "https://laravel.build/你的项目名" | bash - 进入项目目录,启动Sail后台服务:
cd 你的项目名 ./vendor/bin/sail up -d - 执行Composer命令:
# 安装项目依赖 ./vendor/bin/sail composer install # 更新依赖包 ./vendor/bin/sail composer update - 执行NPM命令:
# 安装前端依赖 ./vendor/bin/sail npm install # 开发环境编译前端资源 ./vendor/bin/sail npm run dev - 站点访问:Sail默认配置好了端口映射,直接访问
http://localhost即可,无需额外调整Nginx配置。
二、原Docker Compose配置的改造方案(供参考)
如果需要基于你最初编写的docker-compose.yml实现需求,需对PHP服务进行改造,集成Composer和NPM:
- 构建自定义PHP镜像
在项目根目录创建Dockerfile,内容如下:FROM php:8.1-fpm # 安装Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # 安装Node.js和NPM RUN apt-get update && apt-get install -y nodejs npm - 修改docker-compose.yml
将原PHP服务的image替换为build配置,同时调整工作目录:services: nginx: container_name: nginx_tst image: nginx:latest networks: - php ports: - "8080:80" volumes: - "./nginx-conf:/etc/nginx/conf.d" - "./:/usr/share/nginx/html" php: container_name: php_tst build: . # 改为构建自定义镜像 networks: - php volumes: - "./:/usr/share/nginx/html" working_dir: /usr/share/nginx/html # 调整为项目根目录 networks: php: - 启动服务并执行命令
# 构建镜像并启动服务 docker-compose up -d --build # 进入PHP容器 docker exec -it php_tst bash # 在容器内执行Composer命令 composer install composer update # 执行NPM命令 npm install - 验证Nginx配置
确保你的Nginx配置文件中,fastcgi_pass指向php:9000(网络内可直接通过服务名访问PHP服务)。
内容的提问来源于stack exchange,提问作者Screeaam
相关产品推荐
相关产品推荐

