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

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

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

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Circle CI

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

Q&A

0回答

808閲覧

CircleCIでflaskを起動し疎通確認を取りたい

popuo

総合スコア0

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Circle CI

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

0グッド

0クリップ

投稿2021/03/06 16:19

前提・実現したいこと

CircleCIでflaskを起動し疎通確認を取りたい

発生している問題・エラーメッセージ 試したこと

2パターンあります。

  1. circleci.ymlpython server/app.pybackground: trueを記述した場合Build was canceledが発生

(エラー終了ではないため後続の処理は動くがその後のcurlコマンドは失敗する)
2. 1つ目のjobでバックグラウンド起動をせずpython server/app.pyを起動しっぱなし、2つ目のjobでcurlコマンドを実行

1,2に関わらずcurlコマンドでcurl: (7) Failed to connect to 127.0.0.1 port 5000: Connection refusedが発生

該当のソースコード

circleci.yml

version: 2.1 jobs: build_api_start_up: docker: - image: circleci/python:3.7.4 steps: - checkout - run: name: Install Python Dependencies command: | echo 'export PATH=~$PATH:~/.local/bin' >> $BASH_ENV && source $BASH_ENV pip install --user -r requirements.txt - run: command: python server/app.py background: true #パターン1の場合は記述、2の場合はコメントアウト api_test: docker: - image: circleci/python:3.7.4 steps: - run: sleep 20 - run: curl http://127.0.0.1:5000/ workflows: build_test: jobs: - build_api_start_up - api_test

server/app.py

from flask import Flask app = Flask(__name__) # http://127.0.0.1:5000/ @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run(port=5000)

補足

ローカルで試したときflaskを起動させないでcurlを叩くと該当エラーが発生しました。
起動させcurl実行するとローカルでは問題なく動作します。
なのでCircleCI上でうまくflaskが起動してないのだと思います。

sleepを仕込んでいるのは先にflaskを起動させcurlコマンドが先回りしないようにしてます。(どのみち失敗してますが)

疑問点

なぜバックグランドで起動させるとBuild was canceledが発生するのか(エラーでググってもめぼしいものがヒットせず)


どなたか知見のある方、お力添え願えないでしょうか。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問