(Docker) 如何在 WordPress 容器中使用单独的 Composer 容器安装依赖项?

2024-05-27

Dockerfile

FROM wordpress

ENV REFRESHED_AT 2015-08-12

ADD \
  composer.json /var/www/html
ADD \
  composer.lock /var/www/html

# install the PHP extensions
RUN \
  apt-get -qq update && \
  apt-get -y upgrade && \
  apt-get install -y vim wget && \
  rm -rf /var/lib/apt/lists/*

# Symlink User's "wp-content" folder into the newly installed Wordpress
RUN \
  rm -rf /usr/src/wordpress/wp-content/plugins/* && \
  rm -rf /usr/src/wordpress/wp-content/themes/* && \
  cp -fr /usr/src/wordpress/* /var/www/html/ && \
  chown -R www-data:www-data /var/www/html/

# volume for mysql database and wordpress install
VOLUME ["/var/www/html/wp-content/plugins", "/var/www/html/wp-content/themes"]

# Define working directory.
WORKDIR /var/www/html/

EXPOSE 80 3306

CMD ["apache2-foreground"]

Docker 撰写文件

wordpress:
  build: .
  links:
    - mysql
    - composer
  volumes:
    - wp-content/plugins/:/var/www/html/wp-content/plugins
    - wp-content/themes/:/var/www/html/wp-content/themes
  environment:
    - WORDPRESS_DB_PASSWORD=__WORDPRESS_DB_PASSWORD__
    - WORDPRESS_DB_NAME=__WORDPRESS_DB_NAME__
    # - WORDPRESS_DB_USER=__WORDPRESS_DB_USER__

  ports:
    - "9888:80"

mysql:
  image: mysql:5.7
  environment:
    - MYSQL_ROOT_PASSWORD=__WORDPRESS_DB_PASSWORD__
    - MYSQL_DATABASE=__WORDPRESS_DB_NAME__

composer:
  image: composer/composer

问题详情

我能够ADD the composer.json and composer.lock文件到工作目录。我可以确认这两个文件位于工作目录中。

我需要的是 Dockerfile(或任何地方)也自动将依赖项安装到工作目录中。

根据 Docker 中心的说法,https://hub.docker.com/r/composer/composer/ https://hub.docker.com/r/composer/composer/, 我应该能够docker run -v $(pwd):/app composer/composer install安装依赖项,但如何在 Dockerfile 中执行此操作?

我也很困惑,因为-v flag, https://docs.docker.com/engine/userguide/dockervolumes/ https://docs.docker.com/engine/userguide/dockervolumes/,与将指定的主机目录安装到容器中有关,但我已经ADD将必要的文件添加到工作目录中。我想做的就是安装依赖项。

感谢您的帮助。


您只需要将当前目录挂载到/app当运行你的composer容器。我整理了一个简单的例子来说明这一点https://gist.github.com/andyshinn/e2c428f2cd234b718239 https://gist.github.com/andyshinn/e2c428f2cd234b718239.

这里的关键部分是volumes为了composer申请的一部分和restart: 'yes'在主 PHP 应用程序上(该应用程序可能在 Composer 运行之前不会运行,因此您希望它重新启动)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(Docker) 如何在 WordPress 容器中使用单独的 Composer 容器安装依赖项? 的相关文章

随机推荐

  • 为什么我不能将 Scala 的 Function1 隐式转换为 java.util.function.Function?

    我正在尝试创建 Scala Function1 到 java util function Function 的隐式转换 这是我的代码 object Java8ToScala extends App implicit def javaFunc
  • 如何从色彩校正增益获得色温

    我想找出相机拍摄的照片的色温 final CameraCaptureSession CaptureCallback previewSSession new CameraCaptureSession CaptureCallback Overr
  • TypeScript 中的日期时间格式

    我想以 24 小时格式显示时间字符串 并认为在 TypeScript 中这会很容易 但由于某种原因 我无法将 Date toLocaleTimeString 与选项一起使用 知道为什么吗 它们在单独的接口定义中定义 interface Da
  • 如何使用 Cypress 清除多选输入?

    如何使用赛普拉斯清除 取消选择 多选输入中的所有选项 这里的文档似乎没有涵盖这种情况 https docs cypress io api commands select html Syntax https docs cypress io a
  • Core Audio 渲染线程和线程信号

    iOS 是否有任何类型的非常低级别的条件锁 不包括锁定 我正在寻找一种方法来从核心音频渲染线程内向等待线程发出信号 而不使用锁 我想知道是否可能存在像 Mach 系统调用这样的低级内容 现在我有一个核心音频线程 它使用非阻塞线程安全消息队列
  • 如何在flutter中绘制自定义形状

    我正在尝试在我的应用程序中绘制这样的自定义形状 尝试使用自定义画家进行绘制 但尚未弄清楚如何获得这种形状 我认为它实际上只是一个带有自定义边框的容器 但甚至不知道从哪里开始 我感兴趣的只是形式 而不是内容 或者 如果有人知道如何绘制底部较薄
  • javascript应用于构造函数,抛出“格式错误的形式参数”

    感谢精彩的回复这个问题 https stackoverflow com questions 1959040 possible to send javascript varargs我了解如何使用可变参数调用 javascript 函数 现在我
  • MongoDB - 从每个对话中获取最后一条消息?

    我有一个对话集合 id from userA to userB message Hello datetime 我想显示用户对话的预览 当前用户与任何其他用户之间每次对话的最后一条消息 因此 当用户单击某些 最后一条消息 时 他会转到下一页
  • BoneCP 无法从断开的连接中恢复

    我的 BoneCP 0 7 1 RELEASE 有问题 我虽然认为BoneCP getConnection 确保它会在数据库处于活动状态的情况下返回 Connection 对象 这是我配置池的方式 private void setupCon
  • 如何编写 .bat 或 .cmd 文件来从 PATH 中删除元素?

    Related 如何列出批处理文件中路径的元素 https stackoverflow com questions 1424558 FOR 是如何运作的 https stackoverflow com questions 817280 ho
  • 你如何组织你的命名空间?

    所以我有逻辑实体 人 国家等 GUI 元素 控件 数据和导航控制器 管理器 然后是四叉树和计时器之类的东西 我总是努力将这些东西干净地分离到逻辑名称空间中 我通常有这样的事情 利维坦 GUI 控件 Leviathan GUI 视图 利维坦实
  • 汉字编码?

    我有一个用例 我通过发布请求向 spring 控制器提交参数 在控制器中 我正在读取参数并执行一些操作 之后 我将这些参数作为请求参数的一部分发送到其他 URL 在这里我无法处理中文字符 它变得乱码 我现在正在做的行动 1 我将下面的中文文
  • Spring-Social/Twitter -- ConnectController 不响应 /connect?

    好吧 我已经拉了我的头发很长时间了 至少看起来是这样 试图找出我做错了什么 我有一个Java项目 我想允许用户登录 通过正常的Spring 启用安全性 JDBC 的存储库 向我的应用程序授予对其 Twitter 帐户的访问权限 我已经在 T
  • 根据子节点数量动态调整 d3 树布局的大小

    从这个例子来看http mbostock github com d3 talk 20111018 tree html http mbostock github com d3 talk 20111018 tree html我已经建立了一个d3
  • 我如何修复此 php 代码导致的本月最后一天错误?

    下面的代码是我用于网站菜单的代码 它将当前月份页面的链接移动到月份更改时的链接列表的顶部 但在某些月份的 31 号 例如 4 月 这会失败 对于大多数链接 我得到了同一个月的两个链接 我已经阅读了 php 生成日期方式的问题 但不知道如何更
  • Process.Start() 可以考虑系统路径吗?

    我已经对此进行了一段时间的搜索和实验 但我没有运气 我正在尝试制作一个控制台程序来自动执行一些我无法使用 BAT 文件完成的任务 我想从 Windows SDK 调用 signcode exe 该 bin 文件夹包含我的系统路径中的所有工具
  • 具有动态命名参数的 Scala 案例类副本

    对于具有参数数量的 scala 案例类 21 e g case class Car type String brand String door Int 其中类型 吉普车 品牌 丰田 门 4 etc 还有一个复制方法允许使用命名参数覆盖 Ca
  • 检测诚实的网络爬虫

    我想 在服务器端 检测哪些请求来自机器人 我现在并不关心恶意机器人 只关心那些表现良好的机器人 我见过一些方法 主要涉及将用户代理字符串与 bot 等关键字进行匹配 但这似乎很尴尬 不完整且无法维护 那么有人有更可靠的方法吗 如果没有 您是
  • Rails 是否为 rake 任务运行初始化程序?

    当我运行 rake 任务时 是否执行配置 初始化程序中的脚本 如果你的 rake 任务取决于 environment 即 您像这样声明您的任务 task my task gt environment do end
  • (Docker) 如何在 WordPress 容器中使用单独的 Composer 容器安装依赖项?

    Dockerfile FROM wordpress ENV REFRESHED AT 2015 08 12 ADD composer json var www html ADD composer lock var www html inst