我GIT克隆了的Node.js应用程序(在指定的版本package.json
之中4.1.2
,而我的本地机器存在的6.2.2
),并试图与git在Heroku上推.但它没有构建并给出了这个错误:
无法检测到set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz
现在我将buildpack设置为heroku/nodejs并收到以下消息:
Buildpack set. Next release on lit-badlands-92088 will use heroku/nodejs.
Run git push heroku master to create a new release using this buildpack.
Run Code Online (Sandbox Code Playgroud)
现在,当我跑步时git push heroku master
,我再次被告知:
remote: -----> Failed to detect set buildpack
https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz
remote: More info:
https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to lit-badlands-92088.
Run Code Online (Sandbox Code Playgroud)
即使我设置了Node.js buildpack也未被检测到的可能原因是什么?
在我们的Python/Django应用程序的开发过程中,我们不小心在requirements.txt中引入了安装库的冲突版本的包需求.Heroku已经缓存了python buildpack指定的CACHE_DIR中的破坏需求,正如他们的buildpack API信息页面上所记录的那样,似乎对requirements.txt文件的任何修改都不能清除已损坏软件包的缓存.我们如何强制Heroku完全清空CACHE_DIR并从头开始重新安装所有需求和依赖项?
我正在尝试在heroku上安装自定义构建,所以我使用各种方法尝试使用buildpacks进行第三方安装.在我的.buildpacks文件中,我有:
https://github.com/ddollar/heroku-buildpack-apt
https://github.com/heroku/heroku-buildpack-python.git
Run Code Online (Sandbox Code Playgroud)
在我的Aptfile
我有以下内容:libgeoip-dev
这是geoip的先决条件,与requirements.txt
(GeoIP==1.3.2
)一起安装
这是我的环境变量:
remote: C_INCLUDE_PATH is /app/.heroku/vendor/include:/app/.heroku/vendor/include:/app/.heroku/python/include
remote: CPATH is /tmp/build_xxxxx/.apt/usr/include:
remote: LD_LIBRARY_PATH is /app/.heroku/vendor/lib:/app/.heroku/vendor/lib:/app/.heroku/python/lib
Run Code Online (Sandbox Code Playgroud)
我得到的错误消息是:
remote: building 'GeoIP' extension
remote: creating build
remote: creating build/temp.linux-x86_64-2.7
remote: gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/app/.heroku/python/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
remote: creating build/lib.linux-x86_64-2.7
remote: gcc -pthread -shared build/temp.linux-x86_64-2.7/py_GeoIP.o -lGeoIP -o build/lib.linux-x86_64-2.7/GeoIP.so
remote: /usr/bin/ld: cannot find -lGeoIP
remote: collect2: error: ld returned 1 exit status
remote: …
Run Code Online (Sandbox Code Playgroud) 它在本地运行(未指定driver_path
),但不在Heroku上运行.
码:
Selenium::WebDriver::Chrome.driver_path = ENV['GOOGLE_CHROME_SHIM']
browser = Watir::Browser.new :chrome
Run Code Online (Sandbox Code Playgroud)
我在heroku rails控制台中确认了以下值
ENV['GOOGLE_CHROME_BIN'] => "/app/.apt/opt/google/chrome/chrome"
ENV['GOOGLE_CHROME_SHIM'] => "/app/.apt/usr/bin/google-chrome-stable"
Run Code Online (Sandbox Code Playgroud)
已安装的Buildpacks:
https://github.com/heroku/heroku-buildpack-chromedriver
https://github.com/heroku/heroku-buildpack-google-chrome
Run Code Online (Sandbox Code Playgroud)
当前错误:
Selenium :: WebDriver :: Error :: WebDriverError:无法连接到chromedriver 127.0.0.1:9515
搜索unable to connect to chromedriver 127.0.0.1:9515
SO返回一堆结果,但没有提到heroku.
我考虑过phantomjs.其他人在这里工作, 使用带有Heroku Rails Unicorn堆栈的无头浏览器
但它被弃用了.在本地运行时出现以下错误.
不赞成使用PhantomJS的Selenium支持.请改用无头Chrome/Firefox或HTMLUnit.
为了透明,我也尝试了以下内容.
更改 browser = Watir::Browser.new :chrome
至 browser = Watir::Browser.new :chrome, headless: true
虽然我没想到这会起作用.
删除:
https://github.com/heroku/heroku-buildpack-chromedriver
添加:
https://github.com/heroku/heroku-buildpack-xvfb-google-chrome
.
添加headless
宝石.
并运行watir
gem页面中给出的以下脚本,http://watir.com/guides/headless/.
require 'watir'
require 'headless'
headless …
Run Code Online (Sandbox Code Playgroud) 我尝试在运行 Spring Boot 2.3.0 的 maven 项目中使用 buildpack:
mvn spring-boot:build-image
Run Code Online (Sandbox Code Playgroud)
图像创建得很好,但我看到了以下信息:
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/paketo-buildpacks/builder base-platform-api-0.3 daceb4f909b7 40 years ago 690MB
myimage master a482a4a34379 40 years ago 285MB
Run Code Online (Sandbox Code Playgroud)
为什么说图像(连同构建器)是 40 年前创建的?
我开始用我的Heroku应用程序撞墙了.
我很清楚slug大小,re:图像,PDF和其他材料的正常问题,但我的问题可能围绕着由凉亭或可能构建包带来的其他资产.
https://devcenter.heroku.com/articles/slug-compiler 多次部署后的Heroku Slug大小
我的Heroku compliled slug看起来像这样:
$ du -h --max-depth=1
4.0K ./.bower-tmp
30M ./tmp
24K ./features
236K ./config
195M ./public
4.0K ./log
34M ./bin
792K ./db
355M ./vendor
8.0K ./.heroku
22M ./app
64K ./lib
8.0K ./.bundle
136K ./.bower-registry
22M ./.bower-cache
24M ./node_modules
12K ./.profile.d
Run Code Online (Sandbox Code Playgroud)
到目前为止,最大的是供应商(355M),但我的本地供应商文件夹实际上是空的,因为是公共的(195M).
但是在heroku上它看起来像:
40M vendor/ruby-2.0.0
21M vendor/node
32K vendor/heroku
12K vendor/assets
103M vendor/jvm
192M vendor/bundle
195M public/assets (bower bloat?)
Run Code Online (Sandbox Code Playgroud)
我猜这是用于凉亭和PDF生成的几个构建包之一.
https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-ruby
https://github.com/razorfly/wkhtmltopdf-buildpack
Run Code Online (Sandbox Code Playgroud)
我的应用程序本身看起来很瘦22M,但我现在的heroku SLUG是298.4MB!du
如果我不使用这些构建包,而是在构建之间迁移到本地计算机上的资产编译,那么单独的供应商目录就不止于此了?我不确定一个好的部署策略(/ slug饮食)应该是什么样的,任何想法都会受到高度赞赏.
更新:
我也试过从我读过的其他人那里重建那个slug,但是没有效果.编译后的团块大小保持不变.
heroku plugins:install https://github.com/heroku/heroku-repo.git
heroku repo:rebuild …
Run Code Online (Sandbox Code Playgroud) 我对部署/托管 Node 应用程序和 Puppeteer 不太熟悉。
\n但是,当我尝试使用 Puppeteer 时,我在 Heroku 上的应用程序遇到了问题。
\n完整的错误是:
\n\nError: Could not find Chromium (rev. 1056772). This can occur if either\n\n2022-11-10T06:44:07.938983+00:00 app[web.1]: 1. you did not perform an installation before running the script (e.g. `npm install`) or\n\n2022-11-10T06:44:07.938983+00:00 app[web.1]: 2. your cache path is incorrectly configured (which is: /app/.cache/puppeteer).\n\n2022-11-10T06:44:07.938983+00:00 app[web.1]: For (2), check out our guide on configuring puppeteer at https://pptr.dev/guides/configuration.\n\n2022-11-10T06:44:07.938984+00:00 app[web.1]: at ChromeLauncher.resolveExecutablePath (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/node/ProductLauncher.js:120:27)\n\n2022-11-10T06:44:07.938984+00:00 app[web.1]: at ChromeLauncher.executablePath (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/node/ChromeLauncher.js:166:25)\n\n2022-11-10T06:44:07.938985+00:00 app[web.1]: at PuppeteerNode.executablePath (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/node/PuppeteerNode.js:162:105)\n\n2022-11-10T06:44:07.938985+00:00 app[web.1]: at Object.<anonymous> …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Deis设置数据库.我知道这是可能的,但似乎没有任何关于如何设置ENV变量的文档.我如何设置说MongoDB或Cassandra docker容器然后部署它并让我的deis应用程序使用它?
我正在开发一个 Spring Boot 应用程序,应使用 Cloud Native Build Packs / Paketo.io 将其打包到 OCI 容器中。我使用 GitHub Actions 构建它,我的工作流程build.yml
如下所示:
name: build
on: [push]
jobs:
build-with-paketo-push-2-dockerhub:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to DockerHub Container Registry
run: echo $DOCKER_HUB_TOKEN | docker login -u jonashackt --password-stdin
env:
DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Install pack CLI via apt. See https://buildpacks.io/docs/tools/pack/#pack-cli
run: |
sudo add-apt-repository ppa:cncf-buildpacks/pack-cli
sudo apt-get update
sudo apt-get install pack-cli
- name: Build app with pack …
Run Code Online (Sandbox Code Playgroud) 我正在使用heroku-buildpack-multi:
BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用两个buildpacks进行部署,并收到以下错误:
Fetching repository, done.
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 325 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
-----> Fetching custom git buildpack... done
-----> Multipack app detected
=====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-nodejs.git
! Push rejected, failed to compile Multipack app
Run Code Online (Sandbox Code Playgroud)
这是我的.buildpack的内容
https://github.com/heroku/heroku-buildpack-nodejs.git
https://github.com/dpiddy/heroku-buildpack-ruby-minimal.git
Run Code Online (Sandbox Code Playgroud)
它曾经是间歇性的,但现在每次我尝试部署时都会发生.
奇怪的是,官方的heroku ruby项目似乎已经失踪了...... https://github.com/heroku/heroku-buildpack-ruby
请注意,它仍然在此页面上:https://github.com/heroku