在laravel自动化项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在laravel自动化项目相关的知识,希望对你有一定的参考价值。

我在Laravel中有一个带有.env.local文件的应用程序(a和我制作了下一个docker-compose文件:

api:
container_name: nadal_api
build:
  context: .
  dockerfile: Dockerfile
volumes:
  - .:/var/www/html/app
ports:
  - $APP_PORT:80
links:
  - db
  - redis

和我的码头文件

FROM composer:最新的AS作曲家

FROM node:latest AS node

WORKDIR / var / www / html / app /

来自php:7.2-fpm-stretch

运行apt-get update && apt-get install -y \ supervisor \ nginx \ zip

ADD docker / nginx.conf /etc/nginx/nginx.conf ADD docker / virtualhost.conf /etc/nginx/conf.d/default.conf ADD docker / supervisord.conf /etc/supervisor/conf.d/supervisord.conf

ARG环境

COPY --from = composer / usr / bin / composer / usr / bin / composer

COPY .env.local .env RUN chmod -R g + w / var / www / html / app / bootstrap

RUN作曲家安装RUN php artisan key:generate

EXPOSE 80

CMD [“/ usr / bin / supervisord”]

我想克隆存储库,并在执行docker-compose构建时在dockerfile中执行以下操作:

  1. 将.env.local重命名为.env
  2. 授予存储文件夹的权限。我在这一行有一个错误

运行chmod -R g + w / var / www / html / app / bootstrap

chmod:无法访问'/ var / www / html / app / bootstrap':没有这样的文件或目录

  1. docker-compose.yaml:$ APP_PORT从.env.local获取值(我尝试使用env_file但它不起作用
答案

在你的Dockerfile中没有COPY动作将你当前的所有项目代码复制到创建的图像中。因此,图像中不存在bootstrap文件夹。所以chmod确切地告诉你。

卷(此行 - 。:/ var / www / html / app)将根据图像结构创建将当前目录与容器同步。因此,如果您想授予bootstrap文件夹的权限,请在授予权限之前将项目代码复制到图像中。在权限操作之前添加此行以使文件夹可访问。

COPY . /var/www/html/app

以上是关于在laravel自动化项目的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试:六个值得参考的 Laravel 开源项目

如何在 Windows 中自动启动 XAMPP 和 Laravel 项目

PHPStorm对laravel代码自动提示

Laravel psr-4 不自动加载

Laravel 学习笔记之 Composer 自动加载

laravel5路由改为规则匹配