2012-03-13 33 views
6

Tôi muốn sử dụng Node.js làm máy chủ Share.js và Ruby cho giao diện người dùng. Theo như tôi biết, Heroku chỉ cho phép một quá trình đối mặt với web được gọi là "web". Có ai có một số kinh nghiệm cố gắng để làm một cái gì đó như thế này?Tôi có thể sử dụng hai ngôn ngữ trong ứng dụng Heroku không?

+0

Tôi nghĩ (không phải là câu trả lời) rằng bạn sẽ cần một quy trình công nhân riêng biệt trả tiền để thực hiện việc này. – Phrogz

+0

Bạn có thể AFAIK chỉ có một quy trình web. Bạn có thể có thêm quy trình công nhân nhưng nhiều khả năng họ sẽ không được cung cấp cổng hợp lệ để nghe. –

Trả lời

8

Không, Heroku phát hiện loại ứng dụng khi bạn đẩy mã của bạn vào Heroku và nó biên dịch sên. Bạn sẽ cần phải có chúng như các ứng dụng riêng biệt với một API được xác định giữa hai (không phải lúc nào cũng là một điều xấu)

CẬP NHẬT: Bạn có thể 'chồng' buildpacks những ngày này, ví dụ Ruby + PHP để bạn có thể thực hiện cả hai. Xem https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app để biết cách sử dụng nhiều buildpacks trong cùng một ứng dụng.

+0

Nó không phải là luôn luôn không thể, xin vui lòng xem câu trả lời của tôi trước khi hoàn toàn từ bỏ. – Ali

3

Để báo trước, bạn về mặt kỹ thuật có thể cài đặt hai ngôn ngữ trên một ứng dụng - nhưng tôi không chắc chắn về việc chạy chúng đồng thời. Tôi đã thực hiện buildpack này để kết hợp NodeJS và PHP (vì vậy mà tôi có thể chạy Grunt khi biên dịch sên):

https://github.com/gcpantazis/heroku-buildpack-php-gruntjs

Các phát hiện ngôn ngữ thường là khá ngớ ngẩn; nó sẽ tìm kiếm một tập tin chỉ dẫn của lang, tức là index.php hoặc một rakefile. Bạn sẽ phải thay đổi ngăn phát hiện để mã của bạn vượt qua.

Cập nhật:

Thậm chí tốt hơn, hãy xem xét sử dụng https://github.com/ddollar/heroku-buildpack-multi; nó sẽ cho phép bạn cài đặt buildpacks theo tuần tự. Tùy thuộc vào ứng dụng của bạn, bạn có thể cần phải tìm các gói xây dựng ngôn ngữ không có các bước xác minh, tức là kiểm tra tệp package.json trong ứng dụng NodeJS.

1

Có, nó là chủ yếu là có thể tôi tin rằng, miễn là bạn không làm điều gì đó rất phức tạp. Tôi đã từng triển khai một ứng dụng Flask (Python) đã sử dụng CoreNLP của Stanford - tất cả được viết bằng Java. Bạn sẽ cần heroku-buildpack-multi.

Sau khi thêm mục này, hãy đảm bảo tạo tệp .buildbacks và thêm tất cả các gói mà bạn sẽ cần từ Heroku github.

Các lỗ hổng này Heroku tự phát hiện loại ứng dụng của bạn và làm cho nó cài đặt tất cả các gói xây dựng cần thiết từ tệp .buildpacks.

+0

Bạn không cần sử dụng .buildpacks nữa - đó là một phần của nền tảng những ngày này, https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app –

Các vấn đề liên quan