Quantcast
Channel: ruby - Madogiwa Blog
Viewing all articles
Browse latest Browse all 42

Ruby on Rails: 本番イメージが起動することをGitHub Actionで確認するメモ📝

$
0
0

本番環境をDockerイメージを使ってデプロイするときに思わぬ変更で本番環境のRailsアプリケーションが起動できないことがあります。

それを事前に検知できたら便利ということで最低限Railsのサーバーが立ち上がりヘルスチェックのエンドポイントが正常なレスポンスを返すことを確認するGitHub Actionを作ったのでメモ📝

name: Docker build health check

on:pull_request:jobs:build:timeout-minutes:10runs-on: ubuntu-latest
    steps:- uses: actions/checkout@v2
      - name: get Ruby version
        id: ruby-version
        run: echo "value=$(cat .ruby-version)">> $GITHUB_OUTPUT
      - name: get Node version
        id: node-version
        run: echo "value=$(cat .node-version)">> $GITHUB_OUTPUT
      - name: Build
        uses: docker/build-push-action@v6
        with:push:falsetags: |
            sample-app:latest
          build-args: |
            RUBY_VERSION=${{ steps.ruby-version.outputs.value }}
            NODE_VERSION=${{ steps.node-version.outputs.value }}
            RAILS_ENV=production
      - name: run server and health check
        run: |
          docker run -d -p 3000:3000 
                --rm \
                --env SECRET_KEY_BASE="dummy" \
                --name sample-app sample-app
          sleep 5 # サーバーが完全に起動するのを待つ
          curl -sSf http://localhost:3000/up || exit 1- name: stop server
        run: docker stop sample-app

上記のように単純にdocker/build-push-actionを使ってbuildしたイメージをGitHub Actionに最初から入っているDockerで起動してRails標準のヘルスチェックのパスにcurlでリクエストを送信してるだけ📝

github.com

Rails v7.1から追加された標準のヘルスチェックのエンドポイント、こういうちょっとした起動確認に便利ですね✨

github.com


Viewing all articles
Browse latest Browse all 42

Trending Articles