AWS Cloud9+Docker ComposeでLaravel環境を構築その参

現在のDocker環境は、docker-compose.yml達とLaravelを同梱している。
その為、Gitにプッシュしようと思ったら、丸ごと行ってしまう。
Laravelだけ、リポジトリ管理する事にした。

# マシンスペック
* Mac mini 2018
* macOS Catalina（10.15.x）
* Intel Core-i7 3.2GHz 6コア
* メモリ 32GB
* SSD 512GB

# Docker環境
* Nginx 最新版
* PHP（PHP-FPM）7.2.x
* MySQL 5.7.x
* Composer 1.x
* Laravel 5.6.x

# やること
* Laravelだけ、リポジトリ管理

# 前提
[AWS Cloud9+Docker ComposeでLaravel環境を構築その弐](https://qiita.com/_bobtabo_/items/7ed3d66fe63b6276541b)で環境構築済み

# Laravelだけ、Gitリポジトリ管理する

### 現在の構成

ディレクトリ構成は、こんな感じ。

```
[docker] ← クローンして来た
 |-docker-compose.yml
 |-.git
 |-...
 |-src
    |-laravel ← コイツだけリポジトリ管理したい！
       |-app
       |-...
```

.gitがdockerディレクトリ直下にあるので、プッシュすると丸ごと（dockerディレクトリごと）行ってしまう。

```console
$ pwd
/home/ec2-user/environment/docker

$ ls -al
・・・
drwxrwxr-x 8 ec2-user       ec2-user 198 Apr 20 10:34 .git
・・・
```

docker/src/laravelだけプッシュしたい。
![スクリーンショット 2021-04-22 0.47.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/b7829b38-01f3-a39a-635f-2c4286e2a9d7.png)

### リポジトリの向き先を変える

早い話、.gitがdockerではなく、docker/src/laravelにあれば良い。

* やる事
 * Git初期設定
 * リポジトリを用意
 * docker/.gitを削除
 * docker/src/laravelをバックアップ（以下、旧Laravel）
 * docker/srcにリポジトリをクローン（以下、新Laravel）
 * 旧Laravelを新Laravelにコピー
 * 旧Laravelを削除
 * 新Laravelをプッシュ

##### Git初期設定

未設定なら、やっておく。

```
$ git config --global user.name "GitHubユーザー名"
$ git config --global user.email GitHubメールアドレス
```

##### リポジトリを用意

空っぽなリポジトリだと、クローンした時に```You appear to have cloned an empty repository.```って警告が表示されるので、おっ！？ってなる。
READMEだけ追加しておけば気にならなくて良い。

![スクリーンショット 2021-04-22 1.08.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/f1fcbf4f-b0b3-27e9-9cde-12340f5f99b5.png)

![スクリーンショット 2021-04-22 1.09.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/29277b3a-0f4f-1d50-c651-2a2a1d12f562.png)

![スクリーンショット 2021-04-22 2.17.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/804e0b0e-61c7-03be-ad69-b9328eadba31.png)
##### docker/.gitを削除

```console
$ pwd
/home/ec2-user/environment/docker

$ rm -fdR .git
```

##### docker/src/laravelをバックアップ（以下、旧Laravel）

```console
$ pwd
/home/ec2-user/environment/docker

$ cd src
$ ls
laravel

$ mv laravel laravel_bak
$ ls
laravel_bak
```

##### docker/srcにリポジトリをクローン（以下、新Laravel）

![スクリーンショット 2021-04-26 23.39.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/930e8698-e87f-017a-07b0-5b890c488994.png)

```console
$ git clone <上記でコピーしたリポジトリURL> laravel
例）git clone https://github.com/bobtabo/cloud9-laravel.git laravel

Cloning into 'laravel'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

$ ls
laravel  laravel_bak
```

##### 旧Laravelを新Laravelにコピー

```console
$ ls -l
drwxrwxr-x  3 ec2-user ec2-user   35 Apr 21 17:30 laravel
drwxrwxr-x 13 ec2-user ec2-user 4096 Apr 19 17:40 laravel_bak

$ cp -pR laravel_bak/. laravel

$ ls -l
drwxrwxr-x 14 ec2-user ec2-user 4096 Apr 19 17:40 laravel
drwxrwxr-x 13 ec2-user ec2-user 4096 Apr 19 17:40 laravel_bak
```

##### 旧Laravelを削除

```console
$ ls
laravel  laravel_bak

$ rm -fdR laravel_bak

$ ls
laravel
```

##### 新Laravelをプッシュ

![スクリーンショット 2021-04-22 2.37.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/b65199aa-edf1-e0c7-2017-e92f33ef4c62.png)

![スクリーンショット 2021-04-22 2.37.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/13553d15-3973-50b2-bbf5-835b25233277.png)

![スクリーンショット 2021-04-22 2.39.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/87f9010d-613d-f9fd-6b71-adc2c79b423f.png)

![スクリーンショット 2021-04-22 2.40.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/7615afff-eb9c-3dc3-e9a7-ef06dc8659fb.png)

![スクリーンショット 2021-04-27 1.58.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/59072942-28d3-4b80-774b-42cb80ea98eb.png)

![スクリーンショット 2021-04-27 1.58.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/918cea85-9d0b-3175-e626-bea272b5c148.png)

ブラウザをリロードすれば、プッシュされている。

![スクリーンショット 2021-04-27 2.03.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/5f599125-ecfa-5bb0-be03-d5311966756e.png)

# Cloud9を開き直す時

セッション切れなどでCloud9を開き直したら、ディレクトリ選択し直す。
![スクリーンショット 2021-04-24 3.09.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/aeac44c8-f11c-e04b-fdd8-74b087b6bfc0.png)

![スクリーンショット 2021-04-24 3.12.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/4680af93-de99-090f-87b6-6eab8920b7d5.png)

![スクリーンショット 2021-04-24 3.14.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/ef29b77c-ac4f-ac35-c929-8a9f5e46e142.png)

![スクリーンショット 2021-04-24 3.15.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/111551/e809a1c5-5aab-03f6-46e5-675589722c7a.png)