前提・実現したいこと
CircleCIでflaskを起動し疎通確認を取りたい
発生している問題・エラーメッセージ 試したこと
2パターンあります。
circleci.yml
のpython server/app.py
にbackground: 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
が発生するのか(エラーでググってもめぼしいものがヒットせず)
どなたか知見のある方、お力添え願えないでしょうか。
あなたの回答
tips
プレビュー