2014-11-19 2 views
0

Я пытаюсь подтолкнуть свое приложение к cloudControl, но он, похоже, не работает правильно и не отклоняет мой push.cloudControl push reject: can not stat file

Здесь ошибка:

C:\Users\Vincent\Documents\GitHub\***>cctrlapp *** push 
Counting objects: 12, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (9/9), done. 
Writing objects: 100% (10/10), 4.06 KiB | 0 bytes/s, done. 
Total 10 (delta 1), reused 0 (delta 0) 
remote: 
remote: -----> Receiving push 
remote:  Loading composer repositories with package information 
remote:  Installing dependencies (including require-dev) from lock file 
remote:   - Installing doctrine/lexer (v1.0) 
remote:   Downloading: 100% 
remote: 
remote:   - Installing respect/validation (0.6.1) 
remote:   Downloading: 100% 
remote: 
remote:   - Installing slim/slim (2.4.3) 
remote:   Downloading: 100% 
remote: 
remote:   - Installing zendframework/zend-escaper (2.2.6) 
remote:   Downloading: 100% 
remote: 
remote:   - Installing zf1/zend-exception (1.12.8) 
remote:   Downloading: 100% 
remote: 
remote:   - Installing zf1/zend-session (1.12.8) 
remote:   Downloading: 100% 
remote: 
remote:  zf1/zend-session suggests installing zf1/zend-config (Used in special situations or with special adapters) 
remote:  zf1/zend-session suggests installing zf1/zend-db (Used in special situations or with special adapters) 
remote:  zf1/zend-session suggests installing zf1/zend-loader (Used in special situations or with special adapters) 
remote:  Generating autoload files 
remote: cp: cannot stat `/srv/tmp/builddir/code/vendor': No such file or directory 
remote: !  cloudControl push rejected, failed to compile php app 
remote: ! 
remote: error: hook declined to update refs/heads/master 
To ssh://***@cloudcontrolled.com/repository.git 
! [remote rejected] master -> master (hook declined) 
error: failed to push some refs to 'ssh://***@cloudcontrolled.com/repository.git' 
Command '['C:\\Program Files (x86)\\Git\\cmd\\git.exe', 'push', u'ssh://***@cloudcontrolled.com/repository.git', 'master']' returned non-zero exit status 1 

Сейчас мой проект содержит следующие файлы:

  • /
    • включает/
      • поставщик/
    • .gitignore
    • composer.json
    • composer.lock
    • index.php

Как получить пост-получить крюк, чтобы правильно "компилировать" в PHP приложение?

Это мой composer.json файл:

{ 
    "name": "Hello World", 
    "description": "My PHP application", 
    "authors": [ 
     { 
      "name": "Vincent", 
      "email": " ... @gmail.com" 
     } 
    ], 
    "config": { 
     "vendor-dir": "includes/vendor" 
    }, 
    "require": { 
     "zendframework/zend-escaper": "2.2.6", 
     "respect/validation": "~0.6.1", 
     "slim/slim": "~2.4.3", 
     "zf1/zend-session": "1.12.8" 
    } 
} 

ответ

0

Есть три вероятных проблем здесь:

  • каталог пуст. Git не отслеживает пустые каталоги, поэтому, даже если он существует в вашем рабочем каталоге, он не существует в репозитории.
  • Справочник не пуст, но игнорируется с использованием .gitignore.
  • Композитор не ищет нумерацию vendor в нужном месте. /srv/tmp/builddir/code/vendor означало бы, что он должен был бы существовать в /vendor ваш в /includes/vendor.

Это может быть комбинация любого из вышеперечисленных. Чтобы быть в состоянии сказать, мне понадобится содержимое .gitignore и composer.json. Если бы мне пришлось делать ставки, мои деньги были бы на последнем варианте.

Чтобы устранить проблему с пустым каталогом, убедитесь, что файл /.gitignore не содержит /includes/vendor. Затем создайте /includes/vendor/.gitignore файл со следующим содержанием:

# Ignore everything in this directory 
* 
# Except this file 
!.gitignore 

Чтобы исправить последнюю, проверить ваш composer.json и «целевой реж» установить там. Для получения дополнительной информации см. Composer documentation.

+0

Я попытался добавить файл '.gitignore', но проблема все еще происходит. Локально Composer устанавливает зависимости в '/ includes/vendor', но я не уверен, почему это не так в cloudControl. Я отредактирую свой вопрос, чтобы опубликовать файл 'composer.json'. –

+0

Учитывая ваш 'composer.json', мы проверили и обнаружили, что это на самом деле я [ошибка в нашем PHP Buildpack] (https://github.com/cloudControl/buildpack-php/issues/17). Buildpacks ломается при использовании настраиваемых каталогов поставщиков. Пока у нас не будет исправления, которое, как мы надеемся, должно быть завтра, вы можете обойти это, указав каталог поставщика в корне вашего репозитория.Мы предоставим вам информацию о наших достижениях в области Github. – pst

Смежные вопросы