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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Circle CI

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

Q&A

解決済

1回答

1217閲覧

circleCIのECSに対するbuild_and_deployが通らない

ETO3

総合スコア45

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Circle CI

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

0グッド

0クリップ

投稿2021/05/16 13:16

編集2021/05/17 02:02

前提・実現したいこと

laravelで制作したwebサイトをcircleCI+aws(ecs)でデプロイをしています。

githubにpushするとcircleCI上でビルドが始まりawsへビルドイメージがアップロードされるのですが、
数週前まではsuccessになっていたデプロイで急にfailedが出るようになり困っています。

発生している問題

エラーがでている箇所としては

workflows: build_and_deploy: jobs: - aws-ecr/build-and-push-image:
  • aws-ecr/build_and_push_image:の

イメージ説明

Install AWS CLIで

#!/bin/bash -eo pipefail export PIP=$(which pip pip3 | head -1) if [[ -n $PIP ]]; then if which sudo > /dev/null; then sudo $PIP install awscli --upgrade else # This installs the AWS CLI to ~/.local/bin. Make sure that ~/.local/bin is in your $PATH. $PIP install awscli --upgrade --user fi elif [[ $(which unzip curl | wc -l) -eq 2 ]]; then cd curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip" unzip awscli-bundle.zip if which sudo > /dev/null; then sudo ~/awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws else # This installs the AWS CLI to the default location (~/.local/lib/aws) and create a symbolic link (symlink) at ~/bin/aws. Make sure that ~/bin is in your $PATH. awscli-bundle/install -b ~/bin/aws fi rm -rf awscli-bundle* cd - else echo "Unable to install AWS CLI. Please install pip." exit 1 fi The directory '/home/circleci/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/home/circleci/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting awscli Downloading https://files.pythonhosted.org/packages/e7/91/9b383d5797c0a670b3d4c156d1985823fedd437d37f872d78d0fbf196145/awscli-1.19.72.tar.gz (1.4MB) 100% |████████████████████████████████| 1.4MB 825kB/s eta 0:00:01 Exception: Traceback (most recent call last): File "/opt/circleci/.pyenv/versions/2.7.12/lib/python2.7/site-packages/pip/basecommand.py", line 209, in main status = self.run(options, args) File "/opt/circleci/.pyenv/versions/2.7.12/lib/python2.7/site-packages/pip/commands/install.py", line 299, in run requirement_set.prepare_files(finder) File "/opt/circleci/.pyenv/versions/2.7.12/lib/python2.7/site-packages/pip/req/req_set.py", line 360, in prepare_files ignore_dependencies=self.ignore_dependencies)) File "/opt/circleci/.pyenv/versions/2.7.12/lib/python2.7/site-packages/pip/req/req_set.py", line 647, in _prepare_file set(req_to_install.extras) - set(dist.extras) File "/opt/circleci/.pyenv/versions/2.7.12/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2810, in extras return [dep for dep in self._dep_map if dep] File "/opt/circleci/.pyenv/versions/2.7.12/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2624, in _dep_map dm.setdefault(extra,[]).extend(parse_requirements(reqs)) File "/opt/circleci/.pyenv/versions/2.7.12/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2980, in parse_requirements "version spec") File "/opt/circleci/.pyenv/versions/2.7.12/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2956, in scan_list raise RequirementParseError(msg, line, "at", line[p:]) RequirementParseError: Expected ',' or end-of-list in rsa>=3.1.2,<=4.5.0; python_version=="2.7" at ; python_version=="2.7" You are using pip version 8.1.1, however version 21.1.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Exited with code exit status 2 CircleCI received exit code 2

こんな感じのエラーが出るようになりました。

ちなみに以前にも同様のエラーが何度か出たことがあり、最初は右上に
イメージ説明
concurrency limitというエラーが出ていました。
エラー内容は今回と一緒です。
この時はgo to planと書いてあったので言うとおりにクレジットを追加したらsuccessになり通るようになりました。

次にエラーがでた時はconcurrency limit のエラーはでてなくクレジットも十分に残っていましたが取り敢えずクレジットを追加してみたらsuccessがでました。
この時クレジットは明らかに追加する必要ないくらい残っていたのになぜ追加して通るようになったのかわかりません。

今回もクレジットを追加すれば通る気がするのですが、クレジットが既に十分あるにもかかわらず追加して直るのもよくわからないので原因が知りたいです。

以前は通っていたコードなのでECS側に容量とかの問題があるのかなと思ったりするのですがどうでしょうか…

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

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

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

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

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

yu_1985

2021/05/17 02:49

この辺はご確認されましたか? https://support.circleci.com/hc/en-us/articles/360055741771-Build-Not-Running-due-to-concurrency-limit-but-no-other-job-is-running どうでもいいですが、使っているpipのバージョンがとても古いことと、未だにpython2を使っていることが気になりますね…。 awscliの古いバージョンを使っているとそうなりますけど、特に理由なければawscli2を使うことをおすすめします。 https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-linux.html
ETO3

2021/05/17 05:16

張っていただいたURLを参考に、failedになっていたjobのrerun with job SSHとやらを押してみたら全部のjobが通り、SSHのjobをキャンセルしてから普通のRerun workflow from startでやり直したらそちらもsuccesになりました。 とりあえずは解決できました。ありがとうございます! pipのバージョンについても早めに上げようと思います! 解決した理由や原因がいまいちわからないのですが、jobが通ったのは、SSH接続?をしたからなんですかね? それともconcurrency limitというのにに引っかかっていたんですかね...?
yu_1985

2021/05/17 05:24

そのへんは公式のサポート記事に書いてあるとおりかと思います。 > After you SSH into the job, the SSH connection will remain open for up to two hours. That's why we advise to always manually cancel SSH jobs after you have finished with them to make sure your build queue is as free as possible.
ETO3

2021/05/17 06:24

なるほど一度SSHでつなぐと2時間空いたままだから普通にやり直したjobも通ったって感じなんですね。 でも今まで普通に通っていたjobがSSH接続が必要になったのってなんでですかね...?
yu_1985

2021/05/18 02:06

今までは確かに必要がなかったんでしょうか?
ETO3

2021/05/18 05:38

ご返信ありがとうございます。 今まではgithubでマージすると自動的にcircleCIでbuild_and_deployが通ってsuccessになっていました。 なので特別circleCI上でrerun with job SSHを押したりはしてなかったです。 ので急にどうしてこうなったのかわからないんですよね…
yu_1985

2021/05/18 06:06

それはRerunする必要がなかっただけで、SSHを使っていなかったかどうかはそれだけではわからないです。 現状だと - SSHしていなかった - SSHをしていたがうまく行っていた がどちらか切り分けできていないのでそこがどうだったかですね。
ETO3

2021/05/18 12:57

そもそもSSHしてたかってことですね。 実は参考サイトとか見様見真似でやってたのでそもそもどこでSSHの設定しているのかよくわかってないんですよね… ちょっと基礎から勉強しなおした方が良さそうという事がわかったのでありがとうございます! 勉強しなおしてきます!
ETO3

2021/05/18 13:32

あ、すみません とても助かったのでよろしければBAつけさせていただいて質問閉めようと思ったのですが「質問への追記・修正の依頼」だとBAつけられないようなのですがどうしましょう?
yu_1985

2021/05/19 03:17

回答を提示したわけはないので自己解決にしちゃっていいと思います。 根本的には解決したわけではないですし…。 まず、自分のソースが何をやっているのかちゃんと理解することです。 自分でやっていないところならプラットフォーム側がなにかしているかもしれないので、そうであれば問い合わせをしてみてください。
ETO3

2021/05/19 12:41

承知しました。そのような形で質問を閉めさせて頂きます。 >まず、自分のソースが何をやっているのかちゃんと理解することです。 本当にそうですよね…
guest

回答1

0

自己解決

「質問への追記・修正の依頼」へのコメントのおかげでエラー解決できました。
ただ根本的なところを理解できていないところがあるので勉強しなおそうと思います!

投稿2021/05/19 12:41

ETO3

総合スコア45

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問