Skip to content
Mitsuru Mutaguchi edited this page Jun 21, 2023 · 51 revisions

概要

Windows11で開発環境をDockerで構築する手順です。

セットアップ

WSL2にディストリビューションをインストールする

コマンドプロンプト、もしくはPowerShellを管理者権限で起動し、インストールしてください。

wsl --install -d {distribution}

任意のユーザー、パスワードを入力すれば完了です。

参考:以下のコマンドでインストール可能なディストリビューションを確認できます。

wsl -l -o

Docker Desktopをインストールする

Docker公式サイトからダウンロード、インストールをしてください。
Docker Desktop for Mac and Windows | Docker

Connect-CMSをダウンロードする

WSLのターミナルにて、Connect-CMSをgit cloneして、ソースコードをダウンロードします。

VS CodeでWSLのターミナルを開く

以下の手順でターミナルを開きます。

  1. 「Remote - WSL」 をインストールする
  2. VSCの左下「><」をクリック、「New WSL Window」を選択しWSLに入る
  3. ターミナル(T) -> 新しいターミナル でWSLのターミナルを開く

git clone

Connec-CMSのソースコードをダウンロードします。

mkdir src # お好きなディレクトリにgit clone してください。
cd src
git clone https://github.com/opensource-workshop/connect-cms.git
cd connect-cms

DockerでConnect-CMSを立ち上げる

Docker Composeを利用して、WEB、DB、メールサーバーを立ち上げます。

docker-compose up -d

※ docker-composeが無い場合(The command 'docker-compose' could not be found)、Docker Desktopを起動すれば使えるようになります。

Connect-CMSをセットアップする

セットアップのシェルを用意しています。コンテナに入り、シェルを実行します。

docker exec -it app bash

# appコンテナにログイン

bash /var/www/html/connect-cms/docker/app/setup.sh
cd /var/www/html/connect-cms/

### ※ 開発環境の場合、下記コマンドも追加実行
COMPOSER=composer-dev.json composer install

動作確認

ブラウザからlocalhostを確認してください。 Connect-CMSの画面が確認出来れば完了です。

ソースコードを修正したい場合は、このままVSCのリモートウィンドウで進めると便利です。
もちろん、githubへpushできます。

参考:1度作った環境で開発を再開する

  1. Docker Desktopを起動
  2. VS CodeでWSLのターミナルを開く
  3. WSLのターミナルで操作
    1. cd connect-cms
    2. DockerでConnect-CMSを立ち上げる
      • docker-compose up -d
    3. コンテナに入る
      • docker exec -it app bash
  4. localhostでConnect-CMSが見れる

他、やっておいたほうがよいこと

git設定 (WSL)

# github の ユーザー名、メールアドレスを設定
# これをやらないと、githubでcommit log がgithubのアカウントと紐づかないです
git config --global user.name {username}
git config --global user.email "{mail address}"
# 改行コードの自動変換 OFF
git config --global core.autocrlf false

Dockerがメモリを食いすぎてPCが重い場合

メモリが16GBあれば問題なさそうですが、8GBだと激重になることがあります。
そういうときは、WSLが使えるメモリを制限することで解消します。

Qiita 結論: 暫定対処でメモリサイズを固定する

Windowsにある.wslconfigを修正します。
メモリ8GBのPCでは、2GBでちょうどよかったです。

%USERPROFILE%.wslconfig

[wsl2]
memory=2GB
swap=0

phpのバージョンを切り替える場合

Connect-CMSのDockerfile修正

Connect-CMS/docker/app/Dockerfile

#FROM php:7-apache
FROM php:8.1-apache

コンテナ再作成

# appコンテナからログアウト後

docker-compose build
docker-compose up -d

app コンテナに入ってphpのバージョン確認

docker exec -it app bash

# appコンテナにログイン

# php -v
PHP 8.1.10 (cli) (built: Sep  1 2022 21:16:25) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.10, Copyright (c) Zend Technologies

これでphpが切り替わりました。

DB情報

参考URL

参考:docker-composeコマンド

// 起動
docker-compose up -d

// 起動状態 確認
docker-compose ps

// 停止
docker-compose stop

// コンテナ削除
docker-compose rm

// イメージも合わせて削除
docker-compose down --rmi all

参考:WSLでファイル修正したらpermission denied

git pull等でファイルの書きこみpermission が無くなった場合、書きこみができずにエラーになります。
その場合はコンテナ内で下記コマンド例を参考に、パーミッション変更やファイルオーナーを修正するとエラーが解消します。

chmod o+w -R /var/www/html/connect-cms/

permission deniedエラー

permission denied

Clone this wiki locally