Rancher DesktopでPostgreSQLのコンテナが起動しない

# 概要
Apple SiliconのMacでRancher Desktopを使用して、Docker ComposeでPostgreSQLのコンテナを起動することを想定しています。
そのときに、Permission deniedにより起動しない問題が発生しました。調べてみると、Rancher DesktopのmountTypeを9pに設定すると、解決すると情報がありました。しかし、それでも解決せず他の解決方法を見つけたため、共有します。

# 環境
MacにRancher Desktopをインストールしています。
docker composeでserverとDBのコンテナを起動するというよくある構成です。
/db/dataをマウントしてDBのデータを保存しています。

```docker-compose.yml
services:
  server:
    build:
      context: ./server
      dockerfile: Dockerfile
    container_name: server_test
    ports:
      - 8000:80
    tty: true
    volumes:
      - ./server/src:/src
    depends_on:
      db:
        condition: service_healthy
    env_file:
      - .env

  db:
    container_name: db_test
    build:
      dockerfile: ./db/Dockerfile
    ports:
      - 5433:5432
    volumes:
      - ./db/init:/docker-entrypoint-initdb.d
      - ./db/data:/var/lib/postgresql/data
    tty: true
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DATABASE=postgres
      - DATABASE_HOST=localhost
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 1s
      timeout: 5s
      retries: 10
```

```Dockerfile:Dockerfile
FROM postgres:14.0
```
# エラー内容
以下を実行して、コンテナをビルド、起動します。
```terminal
docker compose build
docker compose up
```
コンテナを起動すると、以下のようなPermission deniedというエラーが出ます。
```terminal
db_test      | chown: changing ownership of '/var/lib/postgresql/data/base/1/2836': Permission denied
db_test      | chown: changing ownership of '/var/lib/postgresql/data/base/1/2663': Permission denied
Gracefully stopping... (press Ctrl+C again to force)
dependency failed to start: container db_test exited (1)
```
そこで、以下の記事を参考にoverride.yamlを書いて、mountTypeを9pに変更しました。

https://qiita.com/kino15/items/8b3ae44fb3115cb670da

しかし、DBコンテナがhealth状態にいつまで経ってもなりません。
```terminal
docker compose up
[+] Running 1/0
 ✔ Container db_test  Created                                                                                                                      0.0s 
Attaching to db_test, SQL_injection_server
db_test      | 
db_test      | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_test      | 
db_test      | 2024-09-18 06:27:33.158 UTC [1] LOG:  starting PostgreSQL 14.0 (Debian 14.0-1.pgdg110+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
db_test      | 2024-09-18 06:27:33.159 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_test      | 2024-09-18 06:27:33.159 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_test      | 2024-09-18 06:27:33.168 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Gracefully stopping... (press Ctrl+C again to force)
dependency failed to start: container db_test is unhealthy
```

`depends_on`オプションを削除してDBの状態を待機せずに起動しても、DBに正常にアクセスすることができません

# 解決方法
Rancher Desktopの設定で仮想マシンのエミュレーションとボリュームのマウント方式を変更すると、問題が解決しました。
- override.yamlでmountTypeを9pに設定している人はoverride.yamlを削除します
- Rancher Desktopを開いて、Preferences > Emulation > Virtual Machine > EmulationのVirtual Machine TypeをVZに変更します
- Preferences > Virtual Machine > Emulation > VolumesのMount Typeをvirtiosに変更します