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(使用前将#替换为@)