現在の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環境を構築その弐で環境構築済み
Laravelだけ、Gitリポジトリ管理する
現在の構成
ディレクトリ構成は、こんな感じ。
[docker] ← クローンして来た
|-docker-compose.yml
|-.git
|-...
|-src
|-laravel ← コイツだけリポジトリ管理したい!
|-app
|-...
.gitがdockerディレクトリ直下にあるので、プッシュすると丸ごと(dockerディレクトリごと)行ってしまう。
$ pwd
/home/ec2-user/environment/docker
$ ls -al
・・・
drwxrwxr-x 8 ec2-user ec2-user 198 Apr 20 10:34 .git
・・・
リポジトリの向き先を変える
早い話、.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だけ追加しておけば気にならなくて良い。
docker/.gitを削除
$ pwd
/home/ec2-user/environment/docker
$ rm -fdR .git
docker/src/laravelをバックアップ(以下、旧Laravel)
$ pwd
/home/ec2-user/environment/docker
$ cd src
$ ls
laravel
$ mv laravel laravel_bak
$ ls
laravel_bak
docker/srcにリポジトリをクローン(以下、新Laravel)
$ 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にコピー
$ 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を削除
$ ls
laravel laravel_bak
$ rm -fdR laravel_bak
$ ls
laravel
新Laravelをプッシュ
ブラウザをリロードすれば、プッシュされている。