Asked Apr 5th, 4:40 PM 61 0 2
  • 61 0 2
0

Lỗi missing `secret_key_base` khi deploy rails 6 lên aws

Share
  • 61 0 2

E deploy rails 6 lên aws thì gặp lỗi này

ArgumentError: Missing `secret_key_base` for 'production' environment, set this string with `rails credentials:edit`

E đã tạo file credentials.yml.enc trong shared/config hoặc cũng đã thử set biến môi trường này trong application.rb nhưng k đc

config.secret_key_base = ENV['SECRET_KEY_BASE']

Ai có giải pháp chỉ giúp e với ạ. Thanks!

2 ANSWERS


Answered Apr 5th, 11:20 PM
+3

Bạn đã tạo và set biến SECRET_KEY_BASE trên production (aws ec2?) chưa?

RAILS_ENV=production rake secret

để tạo ra secret key

Sau đó set

export SECRET_KEY_BASE=secret key

vào trong .bash_profile hay .profile gì đó?

Share
Nam @Black.Box
Apr 6th, 3:16 AM

@bs90 Mình đã chạy rồi, check biến ENV cũng đã tồn tại, k hiểu sao vẫn lỗi 😦((

0
| Reply
Share
Apr 6th, 12:46 PM

Có khi nào bạn thiếu thế này không?

config.secret_key_base = <%= ENV['SECRET_KEY_BASE'] %>

Nếu y nguyên như bạn bên trên thì cái secret_key_base nó chỉ là cái string "ENV['SECRET_KEY_BASE']" thôi.

0
| Reply
Share
Apr 6th, 12:51 PM

Còn nếu vẫn không phải thì bạn thử tạo hẳn file /config/secrets.yml (không có .enc gì nữa) kiểu thế này xem

development:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
test:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

Không được nữa thì chịu 🤣

0
| Reply
Share
Answered Apr 5th, 10:49 PM
+1

bạn chạy theo lệnh này chưa?

rails credentials:edit
Share
Nam @Black.Box
Apr 6th, 3:17 AM

Mình chạy rồi bạn ạ

0
| Reply
Share