(Docker)如何在WordPress容器中安装独立的Composer容器的依赖关系?

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 

问题的细节

我能够将composer.jsoncomposer.lock文件添加到工作目录。 我可以确认这两个文件在工作目录中。

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

根据Docker Hub, https: //hub.docker.com/r/composer/composer/,我应该能够docker run -v $(pwd):/app composer/composer install来安装依赖关系,但是我怎样才能在Dockerfile中做这个?

此外,我很困惑,因为-v标志, https://docs.docker.com/engine/userguide/dockervolumes/ ,必须将指定的主机目录挂载到一个容器中,但我已经ADD了必要的文件到工作目录。 我想要做的就是安装依赖关系。

感谢您的帮助。

运行composer容器时,只需将当前目录挂载到/app 。 我已经放在一个简单的例子来说明这个工作在https://gist.github.com/andyshinn/e2c428f2cd234b718239

这里的关键部分是应用程序的composer部分的volumes以及restart: 'yes'主PHP应用程序的restart: 'yes' (在Composer运行之前,应用程序可能不会运行,因此您需要重启)。