从dockerfile运行项目依赖项命令

时间:2017-02-21 09:58:30

标签: mysql mongodb docker docker-compose dockerfile

我有一个需要的laravel项目:

  • mysql数据库图片
  • mongo数据库图片
  • 依赖项:npm,composer,gulp,bower

所以我创建了一个包含3项服务的Class 'DataTables\Lib\CallbackFunction' not found in fheider/cakephp-datatables/src/View/Helper/DataTablesHelper.php

docker-compose.yml

好的,对于我的应用程序,我有一个带有Dockerfile的构建:

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

但是当然有些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并且文件尚未存在且错误被抛出:

#*

那么这种情况有哪些解决方案?为了运行我的项目,我需要在容器创建上运行这些命令。

1 个答案:

答案 0 :(得分:1)

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