【问题标题】:Running DreamFactory 2.0 on BlueMix在 BlueMix 上运行 DreamFactory 2.0
【发布时间】:2016-01-15 02:24:06
【问题描述】:

我正在尝试让 DreamFactory 2.0 在 BlueMix 上运行。我已按照https://developer.ibm.com/bluemix/2014/06/17/getting-started-laravel-bluemix/ 中的说明在 BlueMix 上运行 Laravel 应用程序。除了 .bp-config、.cfignore、manifest.yml 和 composer.json 之外,我拥有 htdocs 下的所有内容。我已经为 composer.json 中的所有脚本修改了 artisan 的路径,然后做了

cf push df2

在日志消息中,我看到 php buildpack 正在安装,所有模块,然后

/tmp/staged/app/php/bin/php /tmp/staged/app/php/bin/composer.phar install --no-progress --no-interaction --no-dev

依赖安装得很好,然后我明白了

Writing lock file
Generating autoload files
  [RuntimeException]
  Could not scan for classes inside "database" which does not appear to be a file nor a folder
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [--ignore-platform-reqs] [packages1] ... [packagesN]
-----> Composer command failed
Traceback (most recent call last):
  File "/tmp/buildpacks/php-buildpack/scripts/compile.py", line 51, in <module>
    .from_build_pack('lib/additional_commands')
  File "/tmp/buildpacks/php-buildpack/lib/build_pack_utils/builder.py", line 189, in extensions
    process_extension(path, ctx, 'compile', process, args=[self])
  File "/tmp/buildpacks/php-buildpack/lib/build_pack_utils/utils.py", line 69, in process_extension
    success(getattr(extn, to_call)(*args))
  File "/tmp/buildpacks/php-buildpack/extensions/composer/extension.py", line 420, in compile
    return composer.compile(install)
  File "/tmp/buildpacks/php-buildpack/lib/extension_helpers.py", line 154, in compile
    self._compile(install)
  File "/tmp/buildpacks/php-buildpack/extensions/composer/extension.py", line 173, in _compile
    self.run()
  File "/tmp/buildpacks/php-buildpack/extensions/composer/extension.py", line 305, in run
    *self._ctx['COMPOSER_INSTALL_OPTIONS'])
  File "/tmp/buildpacks/php-buildpack/extensions/composer/extension.py", line 350, in run
    shell=True)
  File "/tmp/buildpacks/php-buildpack/lib/build_pack_utils/runner.py", line 109, in stream_output
    raise CalledProcessError(retcode, cmd)
build_pack_utils.runner.CalledProcessError: Command '<open file '<fdopen>', mode 'w' at 0x7ffa34c4d810>' returned non-zero exit status 1
Staging failed: Buildpack compilation step failed

这是我的文件:

manifest.yaml

---
applications:
- name: df2
  memory: 512M
  buildpack: https://github.com/cloudfoundry/php-buildpack#v3.2.2
  env:
    CF_STAGING_TIMEOUT: 15
    CF_STARTUP_TIMEOUT: 15
    BP_DEBUG: "True"
  services:
   - df2-cleardb

.bp-config/options.json

{
  "WEB_SERVER":     "nginx",
  "LIBDIR":         ".",
  "COMPOSER_VENDOR_DIR": "htdocs/vendor",
  "WEBDIR": "htdocs/public",
  "NGINX_VERSION":  "{NGINX_16_LATEST}",
  "PHP_VERSION":    "{PHP_56_LATEST}",
  "PHP_EXTENSIONS": [
    "bz2",
    "curl",
    "fileinfo",
    "ldap",
    "mbstring",
    "mcrypt",
    "mongo",
    "mysql",
    "openssl",
    "pdo",
    "pdo_mysql",
    "pdo_sqlite",
    "pgsql",
    "redis",
    "sockets",
    "zip",
    "zlib"
  ]
}

composer.json

{
  "name":              "dreamfactory/dreamfactory",
  "description":       "The DreamFactory(tm) Platform.",
  "keywords":          [
    "api",
    "dreamfactory",
    "dsp",
    "rest"
  ],
  "homepage":          "https://www.dreamfactory.com/",
  "license":           "Apache-2.0",
  "authors":           [
    {
      "name":  "Arif Islam",
      "email": "arifislam@dreamfactory.com"
    },
    {
      "name":  "David Weiner",
      "email": "davidweiner@dreamfactory.com"
    },
    {
      "name":  "Jerry Ablan",
      "email": "jerryablan@dreamfactory.com"
    },
    {
      "name":  "Lee Hicks",
      "email": "leehicks@dreamfactory.com"
    }
  ],
  "support":           {
    "email":  "support@dreamfactory.com",
    "source": "https://github.com/dreamfactorysoftware/dreamfactory",
    "issues": "https://github.com/dreamfactorysoftware/dreamfactory/issues",
    "wiki":   "https://wiki.dreamfactory.com"
  },
  "minimum-stability": "dev",
  "prefer-stable":     true,
  "require":           {
    "laravel/framework":          "5.1.*",
    "tymon/jwt-auth":             "0.5.*",
    "dreamfactory/df-managed":    "dev-feature/bluemix_debug as dev-master",
    "dreamfactory/df-admin-app":  "2.0.*",
    "dreamfactory/df-core":       "0.1.*",
    "dreamfactory/df-aws":        "0.1.*",
    "dreamfactory/df-rackspace":  "0.1.*",
    "dreamfactory/df-sqldb":      "0.1.*",
    "dreamfactory/df-mongodb":    "0.1.*",
    "dreamfactory/df-couchdb":    "0.1.*",
    "dreamfactory/df-rws":        "0.1.*",
    "dreamfactory/df-salesforce": "0.1.*",
    "dreamfactory/df-soap":       "0.1.*",
    "dreamfactory/df-user":       "0.1.*",
    "dreamfactory/df-oauth":      "0.1.*",
    "dreamfactory/df-adldap":     "0.1.*"
  },
  "require-dev":       {
    "barryvdh/laravel-ide-helper": "~2.0",
    "laracasts/generators":        "~1.0",
    "laracasts/testdummy":         "~2.0",
    "phpunit/phpunit":             "~4.0",
    "phpspec/phpspec":             "~2.1",
    "laravel/homestead": "dev-master"
  },
  "autoload":          {
    "classmap": [
      "database"
    ],
    "psr-4":    {
      "DreamFactory\\": "htdocs/app/"
    }
  },
  "autoload-dev":      {
    "classmap": [
      "tests/TestCase.php"
    ]
  },
  "scripts":           {
    "pre-install-cmd":  [
      "echo \"\npath is $PWD\nls is\n$(ls -al)\"",
      "rm -rf htdocs/bootstrap/cache/*.php"
    ],
    "post-install-cmd": [
      "echo \"\npath is $PWD\nls is\n$(ls -al)\"",
      "php htdocs/artisan clear-compiled",
      "php htdocs/artisan optimize",
      "php htdocs/artisan dreamfactory:pull-migrations --dst=htdocs/database/migrations",
      "php htdocs/artisan dreamfactory:setup --force --bluemix"
    ],
    "post-update-cmd":  [
      "php htdocs/artisan clear-compiled",
      "php htdocs/artisan optimize",
      "php htdocs/artisan dreamfactory:pull-migrations --dst=htdocs/database/migrations",
      "php htdocs/artisan dreamfactory:homestead-config"
    ]
  },
  "config":            {
    "preferred-install": "source"
  },
  "extra":             {
    "branch-alias":    {
      "dev-develop": "2.0.x-dev"
    },
    "installer-paths": {
      "public/{$name}/": [
        "type:dreamfactory-app"
      ]
    }
  }
}

post-install-cmd 和 post-update-cmd 中的 dreamfactory:pull-migrations 命令从供应商目录收集所有迁移(我知道,我知道。不是我的设计)并将它们放入 htdocs/database /迁移目录。 dreamfactory:setup 命令将创建 .env 文件,运行 key:generate、migrate 和 db:seed

根据错误消息,dreamfactory:pull-migrations 听起来好像没有运行或出错,但由于应用程序没有启动,我无法查看文件结构。

有人对它为什么不起作用有任何想法吗?我们正在使用 Laravel 5.1。

谢谢!

【问题讨论】:

  • 我确定这是否是问题所在,但我会使用更新版本的 php buildpack。在您的 manifest.yml 文件中,您可以使用 buildpack: php_buildpack 之类的内容来使用最新的 buildpack。
  • 我不确定,我的意思是上面。
  • 我尝试使用最新的 buildpack,但它在安装 nginx 时失败了,所以我现在坚持使用 v3.2.2 per developer.ibm.com/bluemix/2014/06/17/…

标签: php laravel laravel-5.1 ibm-cloud


【解决方案1】:

解决了!

我在 composer.json 的文章中遗漏了一件事。我错过了改变

"classmap": [
  "database"
],

"classmap": [
  "htdocs/database"
],

这可以解释为什么它找不到数据库目录。之后,调整我的 post-install-cmd 命令就很简单了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    相关资源
    最近更新 更多