Fly.ioにRailsアプリをデプロイした時に色々なエラーが出たので解決した

# 環境
- OS
    - エディション	Windows 10 Home
    - バージョン	21H1
    - OS ビルド	19043.2130
- `ruby --version`
    - `ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]`
- `rails --version`
    - `Rails 6.1.7`
- `flyctl version`
    - `flyctl.exe v0.0.435 windows/amd64 Commit: c5149629 BuildDate: 2022-11-22T16:41:44Z`
# 背景
　HerokuのPostgres無料プラン終了に伴い、HerokuにデプロイしていたRailsアプリをFly.ioにデプロイし直しました。
　基本的には以下の記事を参考にデプロイしましたが、記事内に出てこないエラーに遭遇したので、どのように解決したかを書いていきます。
[Fly.ioでデプロイする手順（Window） - Qiita](https://qiita.com/tomo089/items/9ce5a053a98e9fa1654f)
# 発生したエラー
## 1.「flyctl launch」に失敗する
- PowerShellで「flyctl launch」を実行したら、以下のようなエラーが出て失敗しました
```powershell
PS D:\Programming\RubyOnRails\sample_app2> flyctl launch
Creating app in D:\Programming\RubyOnRails\sample_app2
Scanning source code
Detected a Rails app
Error name argument or flag must be specified when not running interactively
```
### 解決策
- 以下のページを参考に、VS Code内のコマンドプロンプトから「flyctl launch」を実行したら成功しました
    - [When I run fly launch to my project I get the following error_ Error name argument or flag must be specified when not running interactively - General - Fly.io](https://community.fly.io/t/when-i-run-fly-launch-to-my-project-i-get-the-following-error-error-name-argument-or-flag-must-be-specified-when-not-running-interactively)
- flyctlのインストール前にVS Codeを起動していてそのままの場合は、パスを通すためにVS Codeを再起動する必要があります
- なお、詳しくは後述しますが、**アプリ名の先頭に数字を使わないようにしてください**
## 2.「flyctl launch」を実行した際に`Failed attaching <アプリ名> to the Postgres cluster`というエラーメッセージが出る
- 上の通りです（ちなみに、メッセージの色は赤ではなく通常色でした）
- 以下のページを参考に、`fly postgres attach <アプリ名>-db --app <アプリ名>`を実行しましたが、別のエラーが出ました
    - [New phoenix hello_world app - error attaching to Postgres Cluster - Phoenix - Fly.io](https://community.fly.io/t/new-phoenix-hello-world-app-error-attaching-to-postgres-cluster)
```winbatch
500: ERROR: syntax error at or near "4" (SQLSTATE 42601) flyio
```
### 解決策
- 以下のページから、アプリ名の先頭に数字を使っていることが原因だとわかったので、Fly.ioのDashboardから先ほどの「flyctl launch」実行により作成されたアプリとDBを削除し、数字を使わない名前で「flyctl launch」を再度実行しました
    - [Error 500_ ERROR_ syntax error at or near __number_in_app_name__ (SQLSTATE 42601) - General - Fly.io](https://community.fly.io/t/error-500-error-syntax-error-at-or-near-number-in-app-name-sqlstate-42601)
## 3.「fly deploy」を実行した際に`ERROR [internal] load metadata for quay.io/evl.ms/fullstaq-ruby:2.7.2-jemalloc-bullseye-slim`というエラーが出る
- 上の通りです
- Gemfileの4行目の`ruby '2.7.2'`をコメントアウトしても、解決しませんでした
### 解決策
- 以下のページを参考に、Dockerfileの20~22行目を次のように変更しました
    - [Error failed to fetch an image or build from source...Unknown desc = quay.io_evl.ms_fullstaq-ruby_3.0.1-jemalloc-bullseye-slim_ not found - General - Fly.io](https://community.fly.io/t/error-failed-to-fetch-an-image-or-build-from-source-unknown-desc-quay-io-evl-ms-fullstaq-ruby-3-0-1-jemalloc-bullseye-slim-not-found)
```dockerfile:Dockerfile
ARG RUBY_VERSION=2.7.2
ARG VARIANT=jemalloc-buster-slim # この行を「jemalloc-bullseye-slim」から変更しました
FROM quay.io/evl.ms/fullstaq-ruby:${RUBY_VERSION}-${VARIANT} as base
```
## 4.「fly deploy」を実行した際に`ERROR [gems 2/2] RUN bundle install && rm -rf vendor/bundle/ruby/*/cache`というエラーが出る
- 上の通りです
### 解決策
- 単純に「bundle install」に失敗しているので、その原因を取り除けばよいです
- 「bundle install」の実行結果がコマンドプロンプト上に表示されていると思いますので、それを確認しましょう
- 自分の場合は、以下の2つの操作を行いました
    1. そもそも最後に「bundle install」を実行したのがかなり前でGemfile.lockの内容が古くなっており、一部gemについて既に公開されていないバージョンをインストールしようとしていたので、Gemfile.lockを削除して「bundle install」を実行し直しました
    1. [上の記事の補足](https://qiita.com/tomo089/items/9ce5a053a98e9fa1654f#%E8%A3%9C%E8%B6%B3)を参考に、Gemfile内の`gem 'sqlite3'`のコメントアウトを外し、かつバージョン指定を削除しました

以上