【初心者】Laradock使い方... npmコマンドまで簡単に教えます。

## この記事のゴール
- LaradockでLaravelの開発環境構築(migrationまで<MySQLとの接続>)
- DBのGUIソフトでDBを閲覧する
- node.jsとnpmのバージョンを整える

## 環境
- mac M1
- git

# LaradockでLaravelの開発環境構築(migrationまで<MySQLとの接続>)

## 手順
① Dockerをインストールする。
② Laradockのリポジトリをgit_cloneする。
③ Laradockの設定をする。
④ Laradockコンテナを立ち上げる
⑤ Workspaceコンテンナでlaravelをインストールする

## ①Dockerをインストールする
> https://www.docker.com/get-started/

## ②Laradockのリポジトリをgit_cloneする

```
① laradockのリポジトリをクローンするディレクトリを作成
mkdir laradock_test

② 作成したディレクトリに移動する
cd laradock_test

③ laradockのgitリポジトリをクローンする
git clone https://github.com/LaraDock/laradock.git
※お使いの環境にgitがインストールされていない場合はインストールしてください。

```

## ③Laradockの設定をする。

```
① git cloneしてきたディレクトリのlaradockディレクトリに入る
cd laradock

② MYSQLのバージョンを指定する(.env.example)
### MYSQL #################################################

MYSQL_VERSION=leatest→5.7に変更
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

############################

③ docker-compose.ymlのMySQLの設定を変更する
### MySQL ################################################
    mysql:
      build:
        context: ./mysql
        args:
          - MYSQL_VERSION=${MYSQL_VERSION}
      platform: linux/x86_64    # ← この設定を追加する
      environment:
        - MYSQL_DATABASE=${MYSQL_DATABASE}
        - MYSQL_USER=${MYSQL_USER}
        - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
        - TZ=${WORKSPACE_TIMEZONE}
      volumes:
        - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
        - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
      ports:
        - "${MYSQL_PORT}:3306"
      networks:
        - backend


④ .envファイルを作成
cp .env.example .env 
```

※MySQLの設定をミスったら
```
 rm -rf ~/.laradock/data/mysql/
```
ここに格納されているデーターを消さないとミスったまま継続して作られ続けてしまいます。

## ④Laradockコンテナを立ち上げる

```
docker-compose up -d nginx mysql workspace
```

## ⑤Workspaceコンテンナでlaravelをインストールする

```
①WorkSpaceコンテナに入る
docker exec -it laradock_workspace_1 bash 

② /var/www/ディレクトリでLaravelプロジェクトを作成する
composer create-project --prefer-dist laravel/laravel=7.* laravel_sample
※ここではlaravel7でアプリケーションを作成しています。

③ laradockの.envファイルでroot設定をする
APP_CODE_PATH_HOST=../laravel_sample

④laradock/nginx/sites/default.confの設定を変更する
root /var/www/laravel_sample/public;

```

## ⑥Laradockコンテナを再起動して設定を反映する
```
①コンテナから出る
exit

②laradockコンテナを再起動する
docker-compose restart
```


## ⑦workspaceコンテナとMysqlコンテナを接続
```
①workspaceコンテナの/var/www/laravel_sample/.envのDB周りを以下のようにする。

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

②migrationする
php artisan migrate
```
#### 終了


# DBのGUIソフトでDBを閲覧する
## sequel proでDBにアクセスする。

```
ホスト：127.0.0.1
ユーザー名：default
パスワード：secret
データベース名：default
```

でいけるはず！

# node.jsとnpmのバージョンを整える


## nodeのバージョン管理のnコマンドをインストールする。
```
① npmのキャッシュをクリアする
npm cache clean

② nコマンドをインストールする
npm install n -g
```

## nコマンドを使う

```
① nodeの安定版をインストールする。
n stable

② 安定版に切り替える
n

③ 切り替わったか確認する
node -v
```

#### もしNode.jsのversionが更新されなかったら

```
 which node
↓node.jsを読み込んでいるパス
/home/laradock/.nvm/versions/node/v18.7.0/bin/node

//nコマンドで入れたnode.jsはここ
  installed : v16.17.0 to /usr/local/bin/node

```

### パスを変更するよ

```
 vim ~/.bashrc

~/.bashrcの以下の記述をコメントアウト。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm

// ~/.bashrc更新
source ~/.bashrc

//nodeのパスを確認
 which node
/usr/local/bin/node #更新されていればok

//一応nvmで管理されているnode消す
rm -rf ~/.nvm

```