Отсутствует ключ шифрования для расшифровки файла. Спросите у своей команды его мастера в ENV ['RAILS_MASTER_KEY']. Развертывание Platform.sh прервано,

СООБЩЕНИЕ ОБ ОШИБКЕ: W: Отсутствует ключ шифрования для расшифровки файла. Спросите у своей команды свой главный ключ и запишите его в /app/config/master.key или поместите в ENV ['RAILS_MASTER_KEY'].

при развертывании моего проекта на Platform.sh операция не удалась из-за отсутствия ключа дешифрования. из моего поиска в Google я обнаружил, что ключ дешифрования.

Мой Ubuntu .bashrc

export RAILS_MASTER_KEY='ad5e30979672cdcc2dd4f4381704292a'

конфигурация проекта рельсов для PLATFORM.SH

. platform.app.yaml

   # The name of this app. Must be unique within a project.
name: app


type: 'ruby:2.7'

# The size of the persistent disk of the application (in MB).
disk: 5120


mounts:
  'web/uploads':
    source: local
    source_path: uploads


relationships:
    postgresdatabase: 'dbpostgres:postgresql'


hooks:
    build: |
      gem install bundler:2.2.5
      bundle install
      RAILS_ENV=production bundle exec rake assets:precompile
    deploy: |
      RACK_ENV=production bundle exec rake db:migrate
web: 
  upstream: 
    socket_family: "unix"
  commands: 
    start: "\"unicorn -l $SOCKET -E production config.ru\""
  locations: 
    '/': 
      root: "\"public\""
      passthru: true
      expires: "24h"
      allow: true

routes.yaml

    # Each route describes how an incoming URL is going to be processed by Platform.sh.
"https://www.{default}/":
    type: upstream
    upstream: "app:http"

"https://{default}/":
    type: redirect
    to: "https://www.{default}/"

services.yaml

# The name given to the PostgreSQL service (lowercase alphanumeric only).
dbpostgres:
   
    type: postgresql:13

    # The disk attribute is the size of the persistent disk (in MB) allocated to the service.
    disk: 5120

db:
  type: postgresql:13
  disk: 5120
  configuration:
    extensions:
      - pgcrypto
      - plpgsql
      - uuid-ossp

Environment / production.rb

config.require_master_key = true

Я подозреваю, что master.key недоступен во время развертывания, и я не понимаю, как решить проблему.


person kamate vakaramoko    schedule 03.02.2021    source источник


Ответы (1)


Насколько я понимаю, ваш экспорт находится в вашем .bashrc на вашем локальном компьютере, поэтому он не будет доступен при развертывании на Platform.sh. (Журналы, которые вы видите в своем терминале при создании и развертывании, передаются в потоковом режиме, этого не происходит на вашем компьютере.)

Вам необходимо сделать RAILS_MASTER_KEY доступным на Platform.sh. Для этого эту переменную необходимо объявить в вашем проекте.

Учитывая характер переменной, я бы предложил использовать Platform CLI для создания этого Переменная. Если эта переменная должна быть доступна во всех ваших средах, вы можете сделать ее на уровне проекта. переменная.

$ platform variable:create --level project --sensitive true env:RAILS_MASTER_KEY <your_key> 

Если он должен быть доступен только для определенной среды, вам понадобится переменная уровня среды:

$ platform variable:create --level environment --environment '<your_envrionment>' --inheritable false --sensitive true env:RAILS_MASTER_KEY '<your_key>'

Префикс env: в именах переменных сообщает Platform.sh о необходимости раскрытия переменной вместе с остальными переменными среды. Дополнительную информацию об этом см. В разделе префиксов переменных страница документации по переменным среды.

Вы можете сделать то же самое с помощью консоли управления, если хотите чтобы избежать командной строки.

Переменные среды также можно настроить непосредственно в вашем .platform.app.yaml файле, как описано здесь. Имейте в виду, что этот файл версируется, вы не должны использовать этот метод для конфиденциальной информации, такой как ключи шифрования, ключи API и другие виды секретов.

Переменная среды RAILS_MASTER_KEY теперь должна быть доступна во время развертывания Platform.sh.

person Rudy Weber    schedule 04.02.2021
comment
спасибо за обмен ... - person kamate vakaramoko; 06.02.2021