質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

0回答

409閲覧

circleciでEC2上への自動デプロイができない

yuya00

総合スコア0

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2022/05/11 13:04

実現したいこと

circleciを使って、RailsアプリケーションをEC2上に自動デプロイしたい。
しかしながら、ssh接続しEC2内に入った後に、githubとの連携がうまくいかない。

エラー内容

circleci

1#!/bin/bash -eo pipefail 2ssh ${USER_NAME}@${HOST_NAME} 'cd teckbooks && git pull' 3Warning: Permanently added '***********' (ECDSA) to the list of known hosts. 4Permission denied (publickey). 5fatal: Could not read from remote repository. 6 7Please make sure you have the correct access rights 8and the repository exists. 9 10Exited with code exit status 1 11CircleCI received exit code 1

ssh ${USER_NAME}@${HOST_NAME} 'cd teckbooks && git pull' でエラーが出ます(teckbooksはアプリ名)。
ssh ${USER_NAME}@${HOST_NAME}単体で実行するとssh接続自体はできていることが確認できました。

自分で調べたことや試したこと

最初に考えたことは、EC2とgithub間での、接続がうまくできていないのはないかと思い、秘密鍵と公開鍵を確認し、再作成をしました。そして手動でssh内に入り、手動でgit pullコマンドを実行するとうまく実行されます。しかしながら、やはりcircleci経由でgithubとの連携をするコマンドを実行するとうまくいきません。(手動だとやりたいことはうまく行くため、秘密鍵・公開鍵周りでのミスではないのかなと思います)
circleciからssh -T githubコマンドを実行するとうまくいかないので接続できないのだと思います。

その他試したこと
・git pull → sudo git pullで実行
・circleciにおけるgithubへのデプロイキーの再作成、およびgithubでそのキーが作成されていることの確認。

該当ソースコード

config.yml

1version: 2 2jobs: 3 test: 4 machine: 5 image: circleci/classic:edge 6 steps: 7 - checkout 8 - run: 9 name: Dockerコンテナのビルド 10 command: docker-compose -f docker-compose.yml build 11 - run: 12 name: Dockerコンテナの起動 13 command: docker-compose -f docker-compose.yml up -d 14 - run: 15 name: db接続を待機 16 command: sleep 10 17 - run: 18 name: データの権限のセットsアップ 19 command: docker-compose exec db mysql -u root -pdb_root_password -e"$(cat db/grant_user.sql)" 20 - run: 21 name: データベースの削除 22 command: docker-compose -f docker-compose.yml run app rails db:drop 23 - run: 24 name: データベースのセットアップ 25 command: docker-compose -f docker-compose.yml run app rails db:create 26 - run: 27 name: データベースのマイグレート 28 command: docker-compose -f docker-compose.yml run app rails db:migrate 29 - run: 30 name: webpackerの実行 31 command: docker-compose -f docker-compose.yml run app rails webpacker:install 32 - run: 33 name: Rubocopの実行 34 command: docker-compose -f docker-compose.yml run app bundle exec rubocop 35 - run: 36 name: データーベースの環境設定 37 command: docker-compose -f docker-compose.yml run app rails db:environment:set RAILS_ENV=test 38 - run: 39 name: Rspecの実行 40 command: docker-compose -f docker-compose.yml run app bundle exec rspec 41 - run: 42 name: Dockerコンテナの停止するsssss 43 command: docker-compose -f docker-compose.yml down 44 45 deploy: 46 machine: 47 image: circleci/classic:edge 48 steps: 49 - checkout 50 - add_ssh_keys: 51 fingerprints: 52 - 4d:2d:85:da:a0:a4:72:e2:59:7d:2b:b2:55:01:b4:31 53 - run: ssh ${USER_NAME}@${HOST_NAME} 'cd teckbooks && git pull' 54 55 56workflows: 57 version: 2 58 test_and_deploy: 59 jobs: 60 - test 61 - deploy: 62 requires: 63 - test 64 filters: 65 branches: 66 only: 67 - task-1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問