zoukankan      html  css  js  c++  java
  • docker run --rm -v $(pwd):/app composer/composer install

    参考

    https://learnku.com/laravel/t/38564#reply125728

    docker run --rm -v $(pwd):/app composer/composer install
    镜像 composer/composer 已经弃用了, 改为 composer 了

    再做一个说明

    原文章说的是

    步骤 2 — 安装依赖
    我们需要运行 composer install 来提取所有组成 Laravel 的库 - 我们可以使用来自 [docker hub] 的 composer docker hub 为我们处理此问题。

    我们将通过执行以下命令来创建一个一次性容器。

    docker run --rm -v $(pwd):/app composer/composer install

    注意:

    我们使用 --rm 标志确保此容器不会在安装后逗留。
    -v $(pwd):/app 用于将主机 (您的 cpu) 上的当前目录挂载到容器中的 /app 中 — 这是在 Composer 内部运行的位置容器希望找到一个 composer.json
    -v $(pwd):/app 还将确保由 composer 在容器内创建的 vendor 文件夹在我们的计算机上也可见。

    ————————————————
    原文作者:Remember
    转自链接:https://learnku.com/laravel/t/38564#a660c7
    版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。

    因为我们的laravel 从github库clone下来后,缺少vendor文件,需要用composer安装,但是安装composer到本地暂时意义不大,所以如果要用,就利用docker的特性,1.文件夹挂载,2.容器可以移除掉;

    一、把宿主机上laravel的工作目录挂进容器的app里面,composer安装会需要根据composer.json文件来查找需要安装的扩展,所以容器就可读取到宿主机上的composer.json了。

    二、由于容器对文件的修改就是直接操作到挂载的文件夹里面的,所以容器里面的修改添加删除,就是对宿主机上的文件进行的修改添加删除。

    那直接开一个容器给composer来直接操作,composer又不用安装到全局,命令添加一个--rm参数,容器运行完了就删除了,省空间。

    -v 是 volume 就是数据卷,就是指定,[宿主机文件夹:容器内文件夹],就是把宿主机的文件夹挂载到容器的文件夹。

    $(pwd)就是当前工作目录。

    本命令显示整个路径名,Print Working Directory的意思;

    PWD 是环境变量,$PWD 与 $(pwd)  就是等价的

    批注 2020-07-14 021817
    $(shell pwd)和$(pwd)用法区别

    $(shell pwd):执行pwd命令

    $(pwd):表示当前所在目录

  • 相关阅读:
    centos 配置php
    Linux下端口被占用解决
    LUOGU P1040 加分二叉树
    bzoj 1057: [ZJOI2007]棋盘制作
    1858: [Scoi2010]序列操作
    poj 2559 Largest Rectangle in a Histogram
    2018/7/19 模拟赛
    SPOJ 2916 GSS5
    BZOJ 4004: [JLOI2015]装备购买
    CF 549B Looksery Party
  • 原文地址:https://www.cnblogs.com/dzkjz/p/13296910.html
Copyright © 2011-2022 走看看