既存のgitリポジトリをローカル環境(WIN+Docker+Ubuntu, sail, laravel)で動かしたい

リポジトリを別にしたけど…sailとか環境とかよく分からず…とりあえず新しいリポジトリを作ったのでローカル環境で動くようにしたい

作成日:2023-03-30, 更新日:2023-06-30

現状

「WIN+Docker+Ubuntu」での環境は用意済みで、ローカル環境(sail, laravel)で動かしたいリポジトリもある

▼ローカル環境とリポジトリの設定の諸々メモ

ややこしいので…色々と分かりやすい表現に変更・まとめ

Ubuntuでのホームディレクトリが「\\wsl.localhost\Ubuntu\home\recatnap」の場合。

  1. Sourcetreeでリポジトリを落とす。PATHは「\\wsl.localhost\Ubuntu\home\recatnap\work」
  2. 「\\wsl.localhost\Ubuntu\home\recatnap\work」を「\\wsl.localhost\Ubuntu\home\recatnap\work_ori」にリネーム
  3. 「WIN+Docker+Ubuntu」でlalavelを動かす環境構築。PATHは「\\wsl.localhost\Ubuntu\home\recatnap\work」
  4. phpMyAdminを追加設定
  5. 「\\wsl.localhost\Ubuntu\home\recatnap\work_ori」から「\\wsl.localhost\Ubuntu\home\recatnap\work」にファイルをコピペ。最終的にSourcetreeでプッシュ対応がなくなればOK
  6. マイグレーション実行して、ブラウザで確認
  7. 「\\wsl.localhost\Ubuntu\home\recatnap\work_ori」はもう使わないので削除

「WIN+Docker+Ubuntu」でlalavelを動かす環境構築。PATHは「\\wsl.localhost\Ubuntu\home\recatnap\work」

▼「\\wsl.localhost\Ubuntu\home\recatnap\」にカレントを移してコマンドを叩く

$ curl -s https://laravel.build/work | bash

▼sailを使って色々と作成してもらう

$ cd x_x && ./vendor/bin/sail up -d

▼こんなメッセージが出てきたらOKっぽい(※一定間隔ごとに繰り返し表示される)

xxxxxx-meilisearch-1   | [2023-03-30T22:55:43Z INFO  actix_web::middleware::logger] 127.0.0.1 "GET /health HTTP/1.1" 200 22 "-" "Wget" 0.000102

「ctrl」+「c」で元の「$」の入力OKなトコにもどれるが、Containersも終了されてしまう
→「Docker Desktop」から「Containers」を起動すればOK。次回以降は「Docker Desktop」から「Containers」を起動させるだけでOK

phpMyAdminを追加設定

▼docker-compose.ymlの「services」の中にphpMyAdmin追加

phpmyadmin:
    image: phpmyadmin/phpmyadmin
    links:
        - mysql:mysql
    ports:
        - 8080:80
    environment:
        #PMA_USER: "${DB_USERNAME}"
        #PMA_PASSWORD: "${DB_PASSWORD}"
        PMA_HOST: mysql
        MEMORY_LIMIT: 256M
        UPLOAD_LIMIT: 256M
    networks:
        - sail

※「DB_USERNAME」「DB_PASSWORD」は「.env」で設定されているので変更不要

▼修正後、ubutsuでコマンド実行

$ ./vendor/bin/sail up -d

「\\wsl.localhost\Ubuntu\home\recatnap\work_ori」から「\\wsl.localhost\Ubuntu\home\recatnap\work」にファイルをコピペ

面倒なコトになるかもしれないので保険をかけた作業手順

  1. Sourcetreeを終了させておく
  2. 「.git」「.gitignore」「.gitattributes」を先にコピペしておく
  3. Sourcetreeを起動 → プッシュ対応が分かるようになる
  4. プッシュ対応になるファイルたちをコピペしていく

docker-compose.yml

「docker-compose.yml」が悩ましい…
「docker-compose.yml.sample」を用意して「docker-compose.yml」はソース管理の対象外としたほうが良いかもしれない

マイグレーション実行して、ブラウザで確認

マイグレーション実行時、権限や改行コードでエラーになるかもしれない
laravel マイグレーションしようとしたらパーミッションやファイルとかが見つからんと言われた

やりたいこと

以下は、上記をまとめるまでのメモ

  • Gitのリポジトリがある
  • ローカル環境に落として作業したい(※フレームワークはlaravel)
  • ローカル環境は「WIN+Docker+Ubuntu」。「sail」ってヤツで何かしている

※細かいコトはよく分からん。Xamppみたいに気軽にファイルをコピペしたら動くってわけじゃない…

流れ

  1. ローカルにlaravelを動かす環境構築
  2. 既存リポジトリを移す

ローカル環境+laravelで作業できるようにしたい…

…ややこしいのでまとめる

  • リモートに「リポジトリ:AAA」がある
  • ローカル環境に「リポジトリ:AAA」がある
  • リモートには「リポジトリ:AAA」を複製した「リポジトリ:ABB」がある
  • ローカル環境に「リポジトリ:ABB」がある。
    でもブラウザで確認するためのサーバ設定等はできていない。やりかたもよく分からん
    →サーバ設定等は「WIN+Docker+Ubuntuでlaravelを使うための作業メモ」と同じやり方でいく

無理矢理対応

作成したローカル環境と落としたリポジトリの各ファイルを手動でコピペして対応する

  1. 今回作成したローカル環境をリネーム
  2. 「リポジトリ:ABB」から今回作成したローカル環境の名前で落とす
  3. リネームした今回作成分のローカル環境から必要なファイルを移す
  4. Sourcetreeで確認

ローカル環境をSourcetreeに設定 → ダメだった方法

  1. WIN+Docker+Ubuntuでlaravelを使うための作業メモ」で新規作成
  2. 「リポジトリ:ABB」から必要なファイルを移す
  3. Sourcetreeで「Add」から追加(?)→「リポジトリ:ABB」と紐づける

→私の環境が「WIN+Docker+Ubuntu」ってヤツでPATHが「\\wsl.localhost\Ubuntu\home\xxx」となるけど、これが「Add」だと受け付けてもらえない

ローカルにlaravelを動かす環境構築

Dockerを起動させて、Ubuntu起動してコマンドラインで色々と行っていく

準備1

「\\wsl.localhost\Ubuntu\home\xxxx」の下に「x_x」って感じのリポジトリを用意したい

$ cd xxxx
$ curl -s https://laravel.build/x_x | bash

「\\wsl.localhost\Ubuntu\home\xxxx\x_x」が作られる

準備2. sailで何かする

$ cd x_x && ./vendor/bin/sail up -d

…多分、「Docker Desktop」のほうで起動でも良いとおもう…次回からは「Docker Desktop」で起動してるし…

ブラウザで確認

「http://localhost/」をブラウザで開く

既存リポジトリを移す

「新規のリポジトリにup」「新規のローカル環境に落とす」ってのは何度かしているけど、既存のリポジトリを既存の環境に落とすってのがよく分からん
…分からんので無理矢理やってみる

今回作成したローカル環境をリネーム

  • Dockerをひとまずストップさせる
  • 「\\wsl.localhost\Ubuntu\home\xxxx\x_x」が作られているので「x_x」を「x__」とかにする

「リポジトリ:ABB」から今回作成したローカル環境の名前で落とす

Sourcetreeで「clone」で落とす
→「\\wsl.localhost\Ubuntu\home\xxxx\x_x」にする

ひとまず「Git Flow」をやって「ブランチ: develop」を用意しておく

リネームした今回作成分のローカル環境から必要なファイルを移す

▼laravelだから…下記あたりをどうにかする。目標はSourcetreeで「プッシュの対象: 0」

  • .git/
  • app/
  • bootstrap/
  • config/
  • database/
  • public/
  • resources/
  • routes/
  • .gitignore(※「.gitattributes」も関係あるかも)

※ひょっとしたら他にも関係のあるファイルがあるかも…都度、対応

step.1

フォルダ名とか修正するのでUbuntuやSourcetreeなどで関係のあるファイル、フォルダを開いているなら閉じたりしておく
→Sourcetreeを終了させておく

「\\wsl.localhost\Ubuntu\home\xxxx\x_x」をリネーム
→「\\wsl.localhost\Ubuntu\home\xxxx\x_b」にする

「\\wsl.localhost\Ubuntu\home\xxxx\x__」を元に戻す
→「\\wsl.localhost\Ubuntu\home\xxxx\x_x」をリネーム

  • 「x_b」がリポジトリから落としたソース(laravelが動かない環境)
  • 「x_x」がlaravelが動く環境

→「x_x」に「x_b」のファイルを移していく

step.2

gitのファイルたちをひとまず移す

「x_b」にある下記ファイル、フォルダを「x_x」をコピペ

  • .git/
  • .gitignore(※「.gitattributes」も関係あるかも)

step.3

Sourcetreeを起動して、作成したリポジトリをひとまず確認
→がっつりとファイルが異なるとでてくる(※プッシュ対象がいっぱい → 「対象: 0」を目指す)

step.4

laravelの各フォルダを移す

「x_b」にある下記ファイル、フォルダを「x_x」をコピペ

  • app/
  • bootstrap/
  • config/
  • database/
  • public/
  • resources/
  • routes/

step.5

Sourcetreeでプッシュ対象を確認して必要に応じて、コピペするなり監視対象外にするなりする

.env.sample

「.env.sample」を複製して「.env」を作成…すでにあるので放置

ブラウザで確認

DBが絡むのでマイグレーション実行後、ブラウザで確認する