Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker compose 在docker服务之间共享卷_Docker Compose_Dockerfile - Fatal编程技术网

Docker compose 在docker服务之间共享卷

Docker 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

我正试图用docker composer构建两个服务。第一个服务(应用程序)是一个简单的卷容器,第二个(php pm)是一个php进程管理器。问题是我的第二个服务试图访问第一个服务共享的Symfony文件夹。由于某些原因,在创建这两个服务之前,文件夹不存在

docker-compose.yml

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

你的文件在哪里?