Как загрузить файл в каталог выпуска при развертывании Capistrano? - PullRequest
0 голосов
/ 23 ноября 2018

Файл Capistrano production.rb выполняет 3 задачи

  • установка композитора --no-dev

  • хранилище mkdir

  • загрузка!".env.production", ".env"

Первые 2 выполнены, но загрузка завершается неудачно: "Нет такого файла или каталога".

Я былвозможность успешно найти файл из командной строки.

Как скопировать файл в каталог текущего выпуска?

$ cap --version
Capistrano Version: 3.11.0 (Rake Version: 12.3.1)
$ cap production deploy
...
01 mkdir -p ~/public_html/app/releases/20181122210112
...
composer install --no-dev
...
mkdir storage
...
SSHKit::Runner::ExecuteError: 
   Exception while executing as me@site.com: 
   scp: ~/public_html/app/releases/20181122210112/.env: 
     No such file or directory

DEBUG Uploading .env.production 0.0%
...
$

успешно извлечь файл из командной строки:

$ scp .env.production me@site.com:~/public_html/app/releases/20181122210112/.env

production.rb

# use absolute path
set :deploy_to, "/home/user/public_html/app"

namespace :deploy do
    desc  "Install app dependencies with composer"
    after :updated, :build do
        on roles(:web) do
            within release_path do
                execute :composer, "install --no-dev"
                execute :mkdir, "storage"
            end
        end
    end
end

namespace :deploy do
    desc "Copy Env"
    after :finished, :copy do
        on roles(:all) do
            upload! ".env.production", "#{release_path}/.env"
        end
    end
end

1 Ответ

0 голосов
/ 23 ноября 2018

Если вам нужно скопировать ваш локальный application.yml на сервер, и вы уже используете capistrano, вы можете использовать capistrano figaro gem , он создает задачу для обновления этого файла на сервере.теоретически вы можете запустить задачу автоматически и сделать этот файл обновленным.это старая жемчужина, но работает как шарм и делает всю работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...