Raspberry Pi 3のDockerでRedmineを立ち上げました

## はじめに

以前、MacのDockerではRedmineを立ち上げたことがあったのですが、同じようにやったらうまくいきませんでした。

- [MacでDockerコンテナ上にRedmineを構築する](https://qiita.com/TakSus/items/1f8bf5eab24548a7ed28)

なので、立ち上げるまでを記録として残します。
Raspberry Pi 3にDockerをインストールするのは、以下で実施済み。

- [Raspberry Pi 3にDockerをインストールしました](https://qiita.com/TakSus/items/4e61128278439fc6afd7)

## 失敗

### 失敗した、docker-compose.yml

前回、Macの時に利用したdocker-compose.ymlです。

```yaml:docker-compose.yml
version: '3.8'
services:
  redmine:
    container_name: redmine
    image: redmine
    restart: always
    ports:
      - 3000:3000
    volumes:
      - ./Redmine/plugins:/usr/src/redmine/plugins
      - ./Redmine/themes:/usr/src/redmine/public/themes
    environment:
      REDMINE_DB_MYSQL: redmine-db
      REDMINE_DB_PASSWORD: redmine
  redmine-db:
    image: mariadb
    container_name: redmine-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: redmine
      MYSQL_DATABASE: redmine
    volumes:
      - ./db:/var/lib/mysql
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
```

### どんなエラーが発生したか

途中は省きます。
mariadbのところで、"**no matching manifest for linux/arm/v7 in the manifest list entries**"が発生しました。

```terminal
$ docker-compose up -d
Pulling redmine-db (mariadb:)...
latest: Pulling from library/mariadb
ERROR: no matching manifest for linux/arm/v7 in the manifest list entries
```

### 調べた記事

Debian（Raspberry PiのOS）だとmariadbもmysqlもうまくいかないみたい。

- [no matching manifest for linux/arm64/v8 in the manifest list entries #698](https://github.com/docker-library/mysql/issues/698)
- [support arm64 architecture #318](https://github.com/docker-library/mysql/issues/318)

### 解決策

[DockerHub](https://hub.docker.com/)にある、以下のイメージを使ってみることにしました。

- [hypriot/rpi-mysql](https://hub.docker.com/r/hypriot/rpi-mysql/)

## 成功

### docker-compose.yml

最終的なdocker-compose.ymlはこちら。
imageを変更しただけです。

```yaml:docker-compose.yml
version: '3.8'
services:
  redmine:
    container_name: redmine
    image: redmine
    restart: always
    ports:
      - 3000:3000
    volumes:
      - ./Redmine/plugins:/usr/src/redmine/plugins
      - ./Redmine/themes:/usr/src/redmine/public/themes
    environment:
      REDMINE_DB_MYSQL: redmine-db
      REDMINE_DB_PASSWORD: redmine
  redmine-db:
    image: hypriot/rpi-mysql
    container_name: redmine-db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: redmine
      MYSQL_DATABASE: redmine
    volumes:
      - ./db:/var/lib/mysql
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
```

### docker-compose up

イメージの確認。

```terminal
$ docker images
REPOSITORY          TAG       IMAGE ID       CREATED       SIZE
redmine             latest    f2b5b69f9ad5   4 weeks ago   440MB
hypriot/rpi-mysql   latest    4f3cbdbc3bdb   2 years ago   209MB
```

立ち上げてみよう。

```terminal
$ docker-compose up -d
Creating redmine    ... done
Creating redmine-db ... done
```

Raspberry Pi 3のDockerでRedmineが立ち上がっているはずなので、Macからアクセスしてみる。
事前に```ifconfig```でIPアドレスを確認しておいて、ブラウザで *http://000.000.000.000:3000* にアクセス。

![20210109_IMG_1627.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244560/35d564c6-d2bc-0e70-dc9b-205a67370a3d.jpeg)

無事にアクセスできました。

## まとめ

記載すると単純だけれど、別のイメージに差し替えるまでの確認に意外と時間がかかりました。
Dockerはイメージが色々あってとても助かります。