M1macbookPro で a-blog-cms のDocker環境作ってみた。
先日、会社のM1Macbook ProでDocker環境を作成しましたのでその備忘録を記事に残したいと思います。
Dockerのインストール・起動
公式サイトからインストールします。intelチップ用ではなくappleチップのDockerをインストールする点に注意してください。
M1チップ搭載のMacbookの場合Rosetta 2をインストールする必要がありますので下記のコマンドでインストールをします。Rosetta 2をインストールせずにDockerを起動するとDockerからエラーが出ますので、必ずインストールしてください。
softwareupdate --install-rosetta
docker-compose.yml の作成
普段はdocker-compose を利用してDocker環境を作成していますので、docker-compose.ymlを用意します。
docker-compose.yml
version: '2'
# service
services:
# mysql
mysql:
image: mysql:5.7
platform: linux/x86_64
container_name: mysql
user: "1000:50"
ports:
- "3306:3306"
volumes:
- ./docker-compose.d/mysql/mysql/data:/var/lib/mysql:rw
- ./docker-compose.d/mysql/mysql/conf.d:/etc/mysql/conf.d:ro
- /var/run/docker.sock:/tmp/docker.sock:ro
environment:
MYSQL_ROOT_PASSWORD: root
command: --innodb-use-native-aio=0
# proxy
proxy:
image: jwilder/nginx-proxy:latest
platform: linux/x86_64
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./docker-compose.d/certs:/etc/nginx/certs:ro
- ./docker-compose.d/nginx.tmpl:/app/nginx.tmpl
ports:
- "80:80"
- "443:443"
# acms.lab(ドメイン名)
acms.lab:
image: atsu666/ioncube:7.2
platform: linux/x86_64
privileged: true
volumes:
- ./acms:/var/www/html
- /etc/localtime:/etc/localtime:ro
environment:
- VIRTUAL_HOST=acms.lab
- HTTPS_METHOD=noredirect
intel製のmacでDocker環境を作成するときとの違いは platform: linux/x86_64
を指定している点です。
この記述がないと下記のようなエラーが出てしまいます。
docker: no matching manifest for linux/arm64/v8 in the manifest list entries.
上記のエラーは調べたらmysqlと一緒に書かれていることが多かったので、記述するのはmysqlだけで良いかもしれません。
ついでにdocker起動に必要なファイルも用意します。
docker-compose.dフォルダ内のファイルです。(ちょっとこれは会社で公開している人がいなくて、公開してもよいか分からないので一応伏せておきます。)
これらのファイルをを任意のディレクトリを作成して、設置します。例えば、~/develop/docker/
ディレクトリを作成して設置します。
hostsファイルの設定
hostsファイルを以下のように編集します。
127.0.0.1 acms.lab
Dockerコンテナの起動
ここからはintelのMacと一緒です。下記コマンドを叩いてあげると、Docker環境が起動して、今回の場合だと http://acms.lab/でローカル環境が立ち上がっています
docker-compose up -d
a-blog cmsのインストール
ここからはいつも通りa-blog cmsをインストールできたら大丈夫です。
1点注意点としては、データベース設定でデータベースサーバー名を mysql
にすることです。データベース名は任意で大丈夫です。
これは M1 と Intel で変わることではないのですが、忘れがちなところなのでメモとして残しておきます。
まとめ
今回は M1 Mac のDockerを初めて触ってみました。Docker が M1チップに対応したことは噂に聞いていたのですが、実際どうなのかは触ってみなければ分からなかったので勉強になりました。これからPCがM1チップになっていってもきちんと動かせるということがわかって安心しました。