Dockerの勉強を兼ねていろんなサーバを構築して遊んでいるのですが、次のような素晴らしい(awesome!な)リポジトリがあったので、早速試しました。
基本的には好きなディレクトリに入って docker compose up -d
するだけなのですが、自分の環境(WSL2)では少々詰まってしまったところがあったので、備忘録として残しておきます。
この記事では、アプリケーションサーバにGo、プロキシサーバ(Webサーバ)にNginx、データベースサーバにMySQLを使ったアーキテクチャ nginx-golang-mysql
を立ち上げてみます。
git clone & ディレクトリに入る
$ git clone https://github.com/docker/awesome-compose.git
$ cd awesome-compose/nginx-golang-mysql/
docker compose実行
docker compose up -d
すれば起動するはずなのですが、次のようなエラーが出てしまいました。
1 error occurred:
* Error response from daemon: dockerfile parse error line 25: unknown instruction: APK
調べていくと、Docker BuildKitが有効になっていないことが原因でした。
BuildKit によるイメージ構築 にあるように、環境変数 DOCKER_BUILDKIT=1
を指定して実行するとうまく動きました。
$ DOCKER_BUILDKIT=1 docker compose up -d
(BuildKitはデフォルトで有効化されているようなのですが、自分の環境ではなぜか有効化されていなかったようでした・・・)
確認
$ curl localhost:80
["Blog post #0","Blog post #1","Blog post #2","Blog post #3","Blog post #4"]
うまくいってますね。
Have a nice awesome-compose life!
参考
- Docker Buildxのドキュメント (https://matsuand.github.io/docs.docker.jp.onthefly/buildx/working-with-buildx/)