要么我错过了什么,要么整个链条缺少一些东西。
我的假设是:
在开发过程中,容器化的全部目的是降低环境设置的成本,并创建一个包含所有所需部件的预先准备的映像。
所以,当我看到拉勒维尔帆通过集装箱安装laravel时,我感到很兴奋。因此,我通过他们的指示安装它,一切都正常。
然后问题就开始了。因为:
.gitignore创建了一个git回购push到我的git中。./vendor/bin/sail up。./vender文件夹在.gitignore中是正确排除的。bash:./卖主/bin/sail:没有这样的文件或目录
composer update。我是不是错过了什么?containerization的全部要点是不要在本地安装所需的环境。
运行一个laravel应用程序的正确方法是什么?它不是从https://laravel.build安装的,而是从git、中克隆出来的,而没有在本地安装或Composer?
更新
我找到了比特尼拉威尔码头,这正是容器应该是什么。
发布于 2021-06-10 19:38:05
您是对的,其他开发人员不需要安装php或composer。他/她所需要的就是安装在本地机器上的码头工人。
如果您在“入门”一节中使用官方Laravel中提到的内容为项目搭建脚手架,那么您将在您的项目根目录中有一个docker-compose.yml文件。
在git克隆存储库之后,开发人员所要做的就是运行
docker-compose up --build -d就这样。
发布于 2022-03-27 20:08:10
对于那些为这个问题挣扎的人..。我找到了一个能正常工作的命令。
首先,您不需要在本地安装任何PHP或Composer,可能对它有误解,您所需要的只是Docker。
Docker会在我理解的东西中安装所有你需要的东西,就像一个沙箱,而不是本地的,为每个项目。
对于那些下载的项目,例如从GIT下载的项目,它没有vendor文件夹,而且显然不能执行sail up,您可以简单地执行:
docker run --rm --interactive --tty -v $(pwd):/app composer install如果您还没有下载composer映像,该命令将下载该映像。然后,将运行一个composer install,如果您没有配置别名,您可以自由地执行一个./vendor/bin/sail up,如果您已经配置了一个别名,则只执行sail up。
就这样。
发布于 2022-10-27 08:14:52
正式文件列出以下命令。
docker run --rm \
-u "$(id -u):$(id -g)" \
-v $(pwd):/var/www/html \
-w /var/www/html \
laravelsail/php81-composer:latest \
composer install --ignore-platform-reqs如果要克隆Laravel项目并在项目根中运行此命令,它将创建一个安装了php和composer的非常小的容器,并在项目根目录中运行composer来安装所有php依赖项。实际上,这会将Laravel核心代码安装到克隆的项目中。一旦项目以这种方式设置,用户应该创建一个本地.env文件来匹配他们的开发环境。
cp .env.example .env # creates a .env file to be populated for the local environment设置了envronment后,它们现在可以在docker中创建应用程序容器并运行应用程序。拉勒维尔为此提供了水手帮手。
./vendor/bin/sail up -d # runs the docker containers in detached mode现在的问题是设置laravel应用程序并运行Laravel应用程序。(我假设该应用程序使用了一个依赖Node.js的Laravel工具包。如果您只使用刀片应用程序,则可以跳过"npm“命令。)
sail artisan key:generate # (Best Practice) Generate a new application key on each machine
sail artisan migrate # Scaffold the database structure
sail artisan db:seed # (Optional) Seed the database with data
sail npm install # (Optional) Install front-end dependencies (Inertia, Vue, React, others...)
sail npm run dev # (Optional) Run the front-end framework in development mode这样,新开发人员应该以原始开发人员的身份运行项目和开发环境的精确副本。
您的项目README可能包括设置其他依赖项的其他步骤,但这是为Laravel项目做出贡献的基本工作流。
此工作流的唯一先决条件是安装带有Internet连接的Docker。这在Windows、Mac和Linux上通过安装码头桌面是最容易实现的。
旧项目的替代方案
如果您正在处理一个不使用Laravel但有一个docker-compose.yml文件的旧项目,那么您应该能够使用以下命令构建和运行必要的容器。
docker-compose up --build -d一旦容器运行,就需要将项目依赖项直接安装到容器中。
docker ps # find the container ID of your project's container
docker exec -it CONTAINER_ID php artisan key:generate
docker exec -it CONTAINER_ID php artisan migrate
docker exec -it CONTAINER_ID php artisan db:seed
docker exec -it CONTAINER_ID npm install
docker exec -it CONTAINER_ID npm run dev当然,Desktop简化了这个过程。通过单击按钮,您可以在容器中直接打开终端外壳,而无需使用docker exec命令。
https://stackoverflow.com/questions/67927013
复制相似问题