5

Tôi hiện đang làm việc trên một ứng dụng node.js được triển khai trên Cây đậu đàn hồi. Nó đã bắt đầu tham chiếu một mô-đun riêng được lưu trữ trên github như một kho lưu trữ riêng tư. Tại địa phương nếu tôi đặt một tham chiếu đến nó trong phần phụ thuộc của package.json của tôi như sau nó hoạt động tốt. Tôi có thể chạy cài đặt nom, nó tải về các mô-đun và các ứng dụng hoạt động mà không có vấn đề.Cách được khuyến nghị để xử lý phụ thuộc vào mô-đun riêng của node.js là gì?

"ModuleName": "git+https://TOKEN:[email protected]/OWNER/REPO_NAME.git" 

Tuy nhiên, khi tôi cố gắng để triển khai đến cây đậu nó không thành công với các lỗi sau:

2014-04-04 00:14:09,188 [DEBUG] (1630 MainThread) [commandWrapper.py-60] [root commandWrapper main] Command result: {'status': 'FAILURE', 'results': [{'status': 'FAILURE', 'config_sets': ['Infra-EmbeddedPreBuild', 'Hook-PreAppDeploy', 'Infra-EmbeddedPostBuild'], 'returncode': 1, 'events': [{'msg': 'Failed to run npm install. Snapshot logs for more details.', 'timestamp': 1396570449, 'severity': 'ERROR'}, {'msg': 'Failed to run npm install. npm http GET https://registry.npmjs.org/express\nnpm ERR! not found: git\nnpm ERR! \nnpm ERR! Failed using git.\nnpm ERR! This is most likely not a problem with npm itself.\nnpm ERR! Please check if you have git installed and in your PATH.\n\nnpm ERR! System Linux 3.4.73-64.112.amzn1.x86_64\nnpm ERR! command "/opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v0.10.26-linux-x64/bin/npm" "install"\nnpm ERR! cwd /tmp/deployment/appli', 'timestamp': 1396570449, 'severity': 'ERROR'}], 'msg': 'Error occurred during build: Command hooks failed\n'}], 'api_version': '1.0'} 

Từ những gì tôi có thể nói bằng cách đọc mà nó xuất hiện git mà không được cài đặt trên Linux mặc định AMI mà Beanstalk sử dụng. Câu hỏi của tôi là cách tốt nhất để xử lý điều này là gì. Hiện tại tôi đang xem xét hai tùy chọn sau:

  1. Hoặc sử dụng AMI đã cài đặt hoặc cài đặt bằng cách nào đó trong khi khởi động.
  2. Tạo quy trình xây dựng đóng gói tất cả các nút node_modules của tôi trước khi triển khai lên Cây đậu.

Hai tùy chọn này có hợp lý hay tôi nên cân nhắc một tùy chọn khác? Có cách nào được đề nghị để xử lý điều này với Elastic Beanstalk hoặc trong hệ sinh thái nút nói chung không?

+0

Tôi sẽ chọn tùy chọn (2) –

+0

Tôi không chắc chắn nếu Elastic Beanstalk không được cài đặt git. Tôi đoán vấn đề là sự cho phép để truy cập kho lưu trữ riêng của bạn. Hãy thử đọc [http://stackoverflow.com/questions/13476138/setting-up-private-github-access-with-aws-elastic-beanstalk-and-ruby-container](http://stackoverflow.com/ này câu hỏi/13476138/thiết lập-up-riêng-github-truy cập-với-aws-đàn hồi-beanstalk-và-ruby-container) – Scoup

Trả lời

3

Bạn có thể đảm bảo rằng git được cài đặt trên máy bằng cách thêm tệp cấu hình vào thư mục .ebextensions. Xem http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

Nếu bạn thêm một tập tin gọi là .ebextensions/packages.config chứa sau:

#extra yum packages 
packages: 
    yum: 
    git: [] 

này sẽ cài đặt git trên máy tính trước khi cài đặt ứng dụng của bạn.

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