railsアプリをcapistranoでデプロイする際にディレクトリ関連でのエラーが発生します。
単純な問題のように思えたのですが、なかなか解決できずに困っております。お手数おかけしますがアドバイスいただけると幸いです。
エラーログ
$ bundle exec cap production deploy
00:01 git:check 01 git ls-remote git@github.com:user/sample_app.git HEAD 01 c2asgasgabdd8d81asgasrgacd82609e80 HEAD ✔ 01 user@100.00.000.100 2.637s 00:03 deploy:check:directories 01 mkdir -p /var/www/app/sample_app/shared /var/www/app/sample_app/releases ✔ 01 user@100.00.000.100 0.242s deploy:check:linked_dirs ## ここでエラーが起こります 01 mkdir -p /var/www/app/sample_app/shared/bin /var/www/app/sample_app/shared/log /var/www/app/sample_app/shared/tmp/pids /var/www/app/sample_app/shared/tmp/cache… 01 mkdir: ディレクトリ `/var/www/app/sample_app/shared/public/assets' を作成できません: ファイルが存在します (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as user@100.00.000.100: mkdir exit status: 1 mkdir stdout: mkdir: ディレクトリ `/var/www/app/sample_app/shared/public/assets' を作成できません: ファイルが存在します mkdir stderr: Nothing written SSHKit::Command::Failed: mkdir exit status: 1 mkdir stdout: mkdir: ディレクトリ `/var/www/app/sample_app/shared/public/assets' を作成できません: ファイルが存在します mkdir stderr: Nothing written
本日の14時頃まではなんの問題もなく同様のコマンドでデプロイができておりました。
思い当たる点として、config/deploy.rbを変更してしまい、そのあとに一度同様のコマンドでデプロイしてしまいました。その後に変更前に戻したりしましたが、エラーが治ることなく今に至っております。
ruby
1 2config/deploy.rb 3 4require 'pry' 5# config valid for current version and patch releases of Capistrano 6lock "~> 3.10.0" 7 8set :application, "sample_app" # アプリケーション名 9set :repo_url, "git@github.com:user/sample_app.git" # デプロイ対象のレポジトリ 10set :deploy_to, '/var/www/app/sample_app' # デプロイするpath先 11 12set :branch, 'master' # ブランチを指定 13set :default_stage, 'development' 14set :scm, :git 15set :deploy_via, :remote_cache 16 17set :log_level, :debug # 出力の制御 18set :pty, true 19set :bundle_binstubs, nil 20 21# Shared に入るものを指定 22set :linked_files, %w{config/database.yml config/secrets.yml} # シンボリックリンクを貼るファイル 23 24set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets bundle public/system public/asset} # sharedにシンボリックリンクを張るディレクトリ指定 25# set :linked_dirs, %w{bin log tmp/pids tmp/cache sockets bundle public/*} #一度こちらをコメントアウトしデプロイしたあとにこの問題が生じたように思われます。 26 27 28# Unicorn 29set :unicorn_pid, "#{shared_path}/tmp/pids/unicorn.pid" 30 31# 5回分のreleasesを保持する 32set :keep_releases, 5 33 34 35after 'deploy:publishing', 'deploy:restart' 36namespace :deploy do 37 38 39 desc 'Restart application' 40 # アプリ再起動を行うタスク 41 task :restart do 42 on roles(:app), in: :sequence, wait: 5 do 43 execute :mkdir, '-p', release_path.join('tmp') 44 execute :touch, release_path.join('tmp/restart.txt') 45 end 46 end 47 # linked_files で使用するファイルをアップロードするタスク 48 # # deployが行われる前に実行する必要がある。 49 desc 'upload important files' 50 task :upload do 51 on roles(:app) do |host| 52 execute :mkdir, '-p', "#{shared_path}/config" 53 upload!('config/database.yml',"#{shared_path}/config/database.yml") 54 upload!('config/secrets.yml',"#{shared_path}/config/secrets.yml") 55 end 56 end 57 58 # webサーバー再起動時にキャッシュを削除する 59 after :restart, :clear_cache do 60 on roles(:web), in: :groups, limit: 3, wait: 10 do 61 #Here we can do anything such as: 62 within release_path do 63 execute :rm, '-rf', release_path.join('tmp/cache') 64 end 65 end 66 end 67 # Flow の before, after のタイミングで上記タスクを実行 68 before :started, 'deploy:upload' 69 after :finishing, 'deploy:cleanup' 70 71 #unicorn 再起動タスク 72 desc 'Restart application' 73 task :restart do 74 invoke 'unicorn:restart' # lib/capustrano/tasks/unicorn.cap 内処理を実行 75 end 76end
私なりに考えた解決方法として、
ディレクトリ `/var/www/app/sample_app/shared/public/assets' を作成できません: ファイルが存在します
とあるのでこのディレクトリを削除しようと試みましたが、うまく削除できずにいます。
どのような方法で削除できますでしょうか。
ローカルと本番サーバーで
rm -rf public/assetsを行いましたがダメでした。
大変お手数おかけしますが、アドバイスいただけませんでしょうか。
何卒よろしくお願い申し上げます。
$ tail -f log/capistrano.log INFO [0db11dc8] Running /usr/bin/env git ls-remote git@github.com:user/sample_app.git HEAD as user@000.00.000.100 DEBUG [0db11dc8] Command: ( export RBENV_ROOT="/usr/local/rbenv" RBENV_VERSION="2.3.1" GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/git-ssh-sample_app-production-usersugawara.sh" ; /usr/bin/env git ls-remote git@github.com:user/sample_app.git HEAD ) DEBUG [0db11dc8] serfd5f8b0b2809fa40awerhwerh5097fc9e24 HEAD INFO [0db11dc8] Finished in 2.510 seconds with exit status 0 (successful). INFO [cd3913a7] Running /usr/bin/env mkdir -p /var/www/app/sample_app/shared /var/www/app/sample_app/releases as user@000.00.000.100 DEBUG [cd3913a7] Command: ( export RBENV_ROOT="/usr/local/rbenv" RBENV_VERSION="2.3.1" ; /usr/bin/env mkdir -p /var/www/app/sample_app/shared /var/www/app/sample_app/releases ) INFO [cd3913a7] Finished in 0.258 seconds with exit status 0 (successful). INFO [6753e35d] Running /usr/bin/env mkdir -p /var/www/app/sample_app/shared/bin /var/www/app/sample_app/shared/log /var/www/app/sample_app/shared/tmp/pids /var/www/app/sample_app/shared/tmp/cache /var/www/app/sample_app/shared/sockets /var/www/app/sample_app/shared/bundle /var/www/app/sample_app/shared/public/assets as user@000.00.000.100 DEBUG [6753e35d] Command: ( export RBENV_ROOT="/usr/local/rbenv" RBENV_VERSION="2.3.1" ; /usr/bin/env mkdir -p /var/www/app/sample_app/shared/bin /var/www/app/sample_app/shared/log /var/www/app/sample_app/shared/tmp/pids /var/www/app/sample_app/shared/tmp/cache /var/www/app/sample_app/shared/sockets /var/www/app/sample_app/shared/bundle /var/www/app/sample_app/shared/public/assets ) DEBUG [6753e35d] mkdir: ディレクトリ `/var/www/app/sample_app/shared/public/assets' を作成できません: ファイルが存在します
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。