rails8とkamalでCDする

rails8.0.2とkamalとGitHub Actionsを使ってCDしました。 ローカルからの手動デプロイについては下記を参照して下さい。 [rails8 \+ Kamalでデプロイする \| FJORD BOOT CAMP(フィヨルドブートキャンプ)](https://bootcamp.fjord.jp/articles/170) ## 準備 該当のGitHubのプロジェクトのsecretsに`KAMAL_REGISTRY_PASSWORD`(Docker Hubのパスワード)と`RAILS_MASTER_KEY`と`SSH_PRIVATE_KEY`を設定して下さい。 `SSH_PRIVATE_KEY`はこれ用にパスフレーズの無いキーを作っておくことをお勧めします。 下記でパスフレーズのないキーペアを作ってroot@sakura.fjord.jpに公開鍵を登録しています。 ```sh $ ssh-keygen -t rsa -b 4096 -N "" -f id_rsa $ ssh-copy-id -i id_rsa.pub root@sakura.fjord.jp ``` ## 設定 あとは`.github/workflows/deploy.yml`に下記を作ってpushするだけです。 ```yaml # .github/workflows/deploy.yml: name: Deploy on: push: branches: - main jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.4.3' bundler-cache: true - name: Setup SSH uses: webfactory/ssh-agent@v0.8.0 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Create secrets file run: | echo "KAMAL_REGISTRY_PASSWORD=${{ secrets.KAMAL_REGISTRY_PASSWORD }}" > .kamal/secrets echo "RAILS_MASTER_KEY=${{ secrets.RAILS_MASTER_KEY }}" >> .kamal/secrets - name: Deploy with Kamal run: bin/kamal deploy ``` ローカルからのデプロイと違うところは、secretsファイルを作っているところです。