1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker初心者が「WSL2(Ubuntu)」と「MacOS」に同じLAMP環境を構築してみる(Windows編)

Last updated at Posted at 2023-07-03

Windows DesktopでもMacBookでも、
同じ開発環境でPHPを書きたい!

そんな思いがあったので、Dockerは未熟レベル、WSL2に関しては知識0の状態から、
エラーと戦いながら手探りで環境構築してみました。(環境自体はあくまで学習用途)
※自分用のメモ書きなので理解してる範囲の説明は省略

バージョン

  • Windows 11 Home(バージョン22H2)
  • Docker Desktop 4.19.0
  • docker-compose 1.27.4
  • PHP 8.2.0
  • mysql 5.7
  • Apache 2.4.56

WSL2(Ubuntu)をインストール

PowerShell(管理者権限)でインストールコマンドを入力

PowerShell
PS C:\Users\xxx> wsl --install

インストールが終わるとUbuntuが立ち上がる
ユーザー名とパスワードの設定を入力したらUbuntuが使えるようになる

コマンドで起動状況が確認できる

PowerShell
PS C:\Users\xxx> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

念のためにWSL 2 を既定のバージョンとして設定

PowerShell
PS C:\Users\xxx> wsl --set-default-version 2

公式ドキュメントはこちら

上手くいかなかった際はこちらを確認

Docker Desktop for Windowsをインストール

Docker Desktop公式ページからインストールできる

※最新バージョンである4.20.1をインストールしたところ、アプリ内でエラー文が表示された。
対処法を調べたが解決できず、Twitterで検索したところ他にも同じような不具合が発生しているようなので、今回はバージョン4.19.0をインストール

Ubuntuを最新状態に

パッケージ情報を更新

Ubuntu
sudo apt update

パッケージを更新

Ubuntu
sudo apt upgrade

ついでにtreeコマンドを使えるように

Ubuntu
sudo snap install tree

DockerでLAMP環境を構築する

今回のディレクトリ構造、docker-compose.ymlファイル、Dockerファイルの内容は下記の記事を参考に(ほぼ丸パクリ)しました。
docker-compose.ymlとDockerfileの書き方は現在学習中です。

ディレクトリ構造

.
├── docker
│   └── php
│       └── Dockerfile
├── docker-compose.yml
└── src
    └── index.php

docker-compose.yml

version: '3'
services:
  app:
    build: ./docker/php
    volumes:
      - ./src:/var/www/html
    ports:
      - 80:80
  mysql:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=root
    ports:
      - 3306:3306
    volumes:
      - dbdata:/var/lib/mysql
volumes:
  dbdata:

Dockerfile

FROM php:8.2-apache
RUN apt-get update \
    && apt-get install -y libpq-dev \
    && docker-php-ext-install pdo_mysql pdo_pgsql

起動

Ubuntu
# .ymlファイルがある場所で入力
docker-compose up -d

mysqlに接続

Ubuntu
docker exec -it mysql mysql -p
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?