02_開発/01_開発環境構築

# ■ docker開発環境の構築手順

## ■ docker環境をインストールする

```cmd [Environment]::SetEnvironmentVariable("DOCKER_CERT_PATH", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_HOST", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_MACHINE_NAME", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_TLS_VERIFY", $null, "User") [Environment]::SetEnvironmentVariable("DOCKER_TOOLBOX_INSTALL_PATH", $null, "User") ```

 - dockerコマンドの実行で「no matching manifest for windows/amd64 ~ in the manifest list entries.」のエラーが表示される場合は次の手順を実行する。   - Docker Desktop for Windowsのアイコンを右クリックし、Settingsを開く。   - 「Daemon」を「Advanced」に変更し、「"experimental": true」にしてApplyする。  - Windowsキー → WIndows管理ツール → サービスを開き、「Service」と「Workstation」を実行中にする。  - Docker Desktop for Windowsのアイコンを右クリックし、Settingsを開く。  - 「Shared Drives」をチェックONに変更し、Applyする。

### ■ hostsファイルを変更する

1. 以下の内容をhostファイルに書く。   - docker-toolbox(docker machineを使う)の場合。     - 「docker Quickstart Termnal」を起動したときのメッセージのIPアドレスでhostファイルを書く。

```hosts 192.168.99.100 u.local.lcl 192.168.99.100 om.local.lcl 192.168.99.100 am.local.lcl 192.168.99.100 ad.local.lcl 192.168.99.100 lg.local.lcl 192.168.99.100 pm.local.lcl ```       - ※ docker-toolboxを再インストールするなどによりIPアドレスが変わったら上記手順でhostファイルを更新する。

  - Docker Desktop(docker machineを使わない)の場合

```hosts 127.0.0.1 u.local.lcl 127.0.0.1 om.local.lcl 127.0.0.1 am.local.lcl 127.0.0.1 ad.local.lcl 127.0.0.1 lg.local.lcl 127.0.0.1 pm.local.lcl ```

1. コマンドプロンプトを開き、次のコマンドを実行する。  > ipconfig /flushdns

## ■ docker環境をインストールする

### ■ docker-composeでイメージのビルドと初回起動を行う 以下のようにファイルを配置したものとして説明する。  - gitリポジトリ 「/c/Users/(Windowsログオン名)/Documents/projects/uchicomi-source」 ※dockerに対応したもの  ※配置先はユーザーディレクトリ以下であれば変更できる。

1. docker環境のファイルを配置する。  - [docker用ファイル一式をダウンロード](https://ambass.backlog.jp/alias/file/1093273257)して展開し、「/c/Users/(Windowsログオン名)/Documents/projects/docker/uchicomi」に配置する。  - その時点のソースに対応したDBのダンプファイルダウンロードして展開し、「db\docker-entrypoint-initdb.d」に配置する。   現時点で次のファイルを配置する。   - uchicomidev.sql.bak

        (最新は、phpmyadminより取得する。フォーマットは、SQLで、ファイルダウンロード後に、ファイルをリネームするだけでOK)

1. ローカルにチェックアウトしたgitリポジトリで、動作に必要な次のディレクトリを作成する。  - fuel/app/cache/stations

1. リポジトリ中の、docker-compose.ymlのvolumesに、リポジトリを配置したパスをフルパスで記載する(相対パスはWindowsではうまく動かない)

	```docker-compose.yml(対象の箇所のコメントアウトを外し、元の記載をコメントアウトする。)
	//c/Users/(ユーザー名)/Documents/projects/uchicomi-source:/var/www/html/uchicomi.com
	```

1. docker-toolboxの場合は「Docker QuickStart Terminal」を開き、docker Desktopの場合は「Windows Powershell」を開き、docker-composeでコンテナを起動する。

	- リポジトリ中のdocker-compose.ymlファイルがあるフォルダをカレントディレクトリにし、dockerイメージを初回ビルドする。  ※数十分かかる
	```bash
	cd "/c/Users/(Windowsログオン名)/Documents/projects/docker/uchicomi"
	docker-compose build
	```
	- docker-composeで初回コンテナを起動する。
	 「import data」と表示されてMySQLコンテナのインポートに数十分かかる。  
	 (「〜/docker/uchicomi/data/db」以下にMySQLのデータが作成され、永続化される)
	```bash
	docker-compose up
	```
	- (最も時間がかかる)コンテナ起動が完了したことを示す次のログが表示されたら、CTRL+Cでコンテナを中断させる。
	 「mysqld: ready for connections.」
	- MySQLのコンテナへのインポートをやり直したいときは「〜/docker/uchicomi/data/db」以下を削除してこの手順をやり直す。

### ■ docker-composeで作業用にコンテナを起動する

1. Docker QuickStart Terminalからdockerコンテナをバックグラウンド起動する。

	```bash
	cd "/c/Users/(Windowsログオン名)/Documents/projects/docker/uchicomi"
	docker-compose up -d
	docker-compose ps
	```
	-  コンテナが起動したかどうかは次のコマンドでSTATUSがupになっていればOK。  
	 コンテナが正常に起動しない場合は、次のようにコンテナをダウンさせ、フロントで起動するとエラーを確認できる。
	```bash
	docker-compose down
	docker-compose up
	```
	-  不要なコンテナが起動し続けている場合は 、起動しているコンテナの一覧を表示してコンテナIDを確認し、個別に停止させてからコンテナを整理する。
	```bash
	docker ps -a
	docker stop 1e8b68e27e79 # 1e8b68e27e79はコンテナID
	docker container prune
	```
	-  コンテナが起動していれば、Webサービスが動作しているOSに、次の操作で入ることができる。(コンテナの終了で設定等は失われる)
	```bash
	docker-compose exec uchicomidev bash
	```

### ■ db.phpの内容を書き換える

1. ブラウザからWebページを開いて表示できることを確認する(アクセス情報等はリリース手順を参照)  > http://u.local.lcl/ → 入居者フロントが表示される  > http://om.local.lcl/ → 大家マイページが表示される  > http://am.local.lcl/ → エージェントマイページが表示される  > http://ad.local.lcl/ → 管理者画面が表示される  > http://lg.local.lcl/ → リーガルチェック画面が表示される  > http://pm.local.lcl:8080/PhpMyAdminが表示される。 ユーザー情報は ec2-user / ec2-user で。  > http://u.local.lcl:8025/MailHogが表示される。表示されたメッセージは文字化けしているのでテキストエディタへコピーペーストし、文字コードを直して内容を確認できる。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS