从dockerfile运行项目依赖项命令

我有一个laravel项目,需要:

  • mysql数据库映像
  • mongo数据库映像
  • 依赖:npm,composer php,吞咽,凉亭

所以我用3个服务创build了docker-compose.yml

 version: '2.0' services: db-mysql: image: mysql environment: - "MYSQL_DATABASE=app_db" - "MYSQL_USER=db_user" - "MYSQL_PASSWORD=nutella" - "MYSQL_ROOT_PASSWORD=choco" db-mongo: image: mongo app: volumes: - C:\Users\svirl\Documents\workspace\app-web:/var/www/html/:rw build: app links: - db-mysql - db-mongo ports: - 32772:80 depends_on: - db-mysql - db-mongo 

好的,我的应用程序,我有一个Dockerfile生成:

 FROM php:5.6-apache WORKDIR /var/www/html/ RUN apt-get update RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer RUN composer install #* RUN apt-get install npm RUN npm install #* RUN npm install -g bower RUN bower install --allow-root RUN npm install -g gulp RUN gulp 

但是,当然像#*这样的命令不会奏效,因为VOLUME没有挂载,文件也不存在,错误如下所示:

 Composer could not find a composer.json file in /var/www/html 

那么这种情况下有什么解决scheme? 为了让我的项目运行,我需要在容器创build上运行这些命令。

使用命令( composer install, npm install... )编写一个shell脚本,并将该脚本作为ENTRYPOINT放入您的Dockerfile