Docker compose 在docker服务之间共享卷
我正试图用docker composer构建两个服务。第一个服务(应用程序)是一个简单的卷容器,第二个(php pm)是一个php进程管理器。问题是我的第二个服务试图访问第一个服务共享的Symfony文件夹。由于某些原因,在创建这两个服务之前,文件夹不存在 docker-compose.ymlDocker compose 在docker服务之间共享卷,docker-compose,dockerfile,Docker Compose,Dockerfile,我正试图用docker composer构建两个服务。第一个服务(应用程序)是一个简单的卷容器,第二个(php pm)是一个php进程管理器。问题是我的第二个服务试图访问第一个服务共享的Symfony文件夹。由于某些原因,在创建这两个服务之前,文件夹不存在 docker-compose.yml application: image: tianon/true volumes: - /home/Projects/symfony-pm:/var/www/symfony-pm
application:
image: tianon/true
volumes:
- /home/Projects/symfony-pm:/var/www/symfony-pm
- /home/Projects/symfony-pm/app/logs:/var/www/symfony-pm/app/logs
php-pm:
build: ./
dockerfile: dockerfile-php-pm
ports:
- 9999:9000
volumes_from:
- application
stdin_open: true
tty: true
第二服务dockerfile
FROM ubuntu:16.04
#INSTALL PHP AND HIS DEPENDENCIES
RUN apt-get update && \
apt-get install -y php7.0-cgi php-xml && \
ln -s /usr/lib/cgi-bin/php /usr/bin/php7.0-cgi
#INSTALL COMPOSER
RUN apt-get install -y curl && \
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && \
chmod +x /usr/local/bin/composer
#INSTALL PPM
RUN apt-get install -y git && \
cd var && \
git clone https://github.com/php-pm/php-pm.git && \
cd php-pm && \
composer install && \
ln -s `pwd`/bin/ppm /usr/local/bin/ppm
#This folder doesn't exist, why??
RUN cd /var/www/symfony-pm && /
composer require php-pm/php-pm:dev-master && /
composer require php-pm/httpkernel-adapter:dev-master && /
composer install
最后一个命令不起作用。
错误消息无法访问“/var/www/symfony pm”:没有这样的文件或目录
目录存在是因为我在构建这两个服务之后进行了检查。文件夹不存在,因为启动容器时,中的
volumes\u会装载目录。但您尝试在构建容器映像期间访问它
我要做的是在构建期间查看/home/Projects/symfony pm
的内容:
COPY /home/Projects/symfony-pm /var/www/symfony-pm
RUN composer require ...
现在,每次更新应用程序时,都需要重建图像
另一种可能是在容器启动时使用以下方法运行composer
:
entrypoint.sh
:
#!/bin/sh
cd /var/www/symfony-pm && composer ...
Dockerfile
:
COPY entrypoint.sh /
ENTRYPOINT /entrypoint.sh
你的文件在哪里?