2011-10-07 25 views
16

Tôi đã tạo một ứng dụng Sinatra, sẽ được lưu trữ trên Heroku và nguồn sẽ được bật lên trên GitHub. Vấn đề là tôi có một tập tin với các khóa API, hiện đang có trong .gitignore. Có cách nào, tôi có thể đẩy repo của tôi đến heroku bằng tệp khóa và loại trừ tệp khi chuyển sang GitHub không?Đẩy các tập tin .gitignore vào một từ xa cụ thể

Cảm ơn trước!

Trả lời

15

Có thể duy trì một chi nhánh riêng biệt chỉ dành riêng cho việc triển khai, nhưng phải mất nhiều kỷ luật để duy trì nó đúng cách:

  1. Thêm một cam kết một chi nhánh sản xuất có thêm các tập tin cấu hình (git add -f để bybass không bao gồm của bạn).
  2. Để cập nhật chi nhánh sản xuất của bạn, hãy hợp nhất các chi nhánh khác (ví dụ: master) vào đó.
    Tuy nhiên, bạn phải không bao giờ hợp nhất chi nhánh sản xuất của bạn thành bất kỳ thứ gì khác hoặc bắt đầu chi nhánh dựa trên bất kỳ "cam kết sản xuất" nào (có tổ tiên bao gồm cam kết "thêm chìa khóa").

Đường dẫn dễ dàng hơn là áp dụng các biến môi trường sử dụng của Heroku để truyền đạt giá trị bí mật cho các phiên bản của bạn. Xem các tài liệu trên Configuration and Config Vars:

heroku config:add KEY1=foobar KEY2=frobozz 

Sau đó truy cập vào các giá trị thông qua ENV['KEY1']ENV['KEY2'] trong mã khởi tạo của bạn hoặc bất cứ nơi nào bạn cần đến chúng. Để hỗ trợ triển khai không phải Heroku của bạn, bạn có thể xác định các biến môi trường giống nhau hoặc quay trở lại để đọc các tệp cấu hình hiện có của bạn nếu các biến môi trường không tồn tại.

+0

cảm ơn bạn, envvars heroku là con đường để đi :) – skazhy

+0

Cùng với các biến môi trường, bạn sẽ cần "https://devcenter.heroku.com/articles/labs-user-env-compile", nếu các biến của bạn là cần thiết để được truy cập trong quá trình biên dịch slug. –

3

Đá quý Figaro cung cấp cách tốt để quản lý vấn đề này. Về cơ bản nó mô phỏng cách tiếp cận biến môi trường của Heroku cục bộ, và làm cho nó dễ dàng giữ cho các khóa của bạn được đồng bộ giữa môi trường phát triển của bạn và Heroku.

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