Laravel 개발 환경을 Docker로 구축~비망록~

참고한 기사



최강의 Laravel 개발 환경을 Docker로 구축

위의 기사를 참고로 환경 구축을 실시했습니다.

nginx, php-fpm, MySQL의 실행 환경(LEMP)을 구축해, Laravel 개발 환경을 구축했습니다. 라고 해도 템플릿을 다운로드 했지만,,,,, (웃음)

전제



· 도커
・Docker-compose
· Git
이들은 다운로드됨
그럼 렛츠고! !

사용법



템플릿 다운로드



먼저 htps : // 기주 b. 코 m / 우칸 - b / 도 c 케 r - 라라 ょ l 여기에서 템플릿을 자신의 리포지토리에 다운로드

「Use this template」의 부분(녹색)을 클릭! !


코드 다운로드! (자신은 zip으로 다운로드)

Laravel 버전을 지정하여 새로 만들기



Makefile의 일부를 다시 작성
docker-compose exec app composer create-project --prefer-dist laravel/laravel .

docker-compose exec app composer create-project --prefer-dist "laravel/laravel=6.*" .

다음 명령 실행
$ make create project

>>> make[1]: ディレクトリ `C:/Users/xxxx/port' に入ります
    docker-compose build --no-cache --force-rm
    Building app
    Step 1/9 : FROM php:8.0-fpm-buster
    ---> 93375cae27f3
    Step 2/9 : LABEL maintainer="ucan-lab <[email protected]>"
    ---> Running in f69b8198df72
                   ~~省略~~
    Discovered Package: nunomaduro/collision
    Package manifest generated successfully.
    67 packages you are using are looking for funding.
    Use the `composer fund` command to find out more!
    > @php artisan key:generate --ansi
    Application key set successfully.

laravel까지 전부 다운로드해 줍니다!

기존 Laravel 프로젝트의 환경 구축


$ git clone [email protected]:[github名]/[プロジェクト名].git
$ git clone [email protected]:yossi0315-a/port.git →自分だったらこんな感じ

>>> Cloning into 'port'...
    [email protected]: Permission denied (publickey).
    fatal: Could not read from remote repository.

처음 하면 실패. 조사해 보면 GitHub에 ssh 접속을 할 수 없었던 것 같다.
라는 것으로 조사하면 여러가지 나왔다!
htps : // m / t 00 / ms / 147662368d02 6416d2
자신은 이 기사를 참고했습니다.
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\xxxx/.ssh/id_rsa):
C:\Users\xxxx/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\xxxxx/.ssh/id_rsa.
Your public key has been saved in C:\Users\xxxxx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx@DESKTOP-xxxxxxx
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|           .     |
|      .   . o    |
|       + + = .   |
|      o S * = .  |
|       = * B *   |
|      o = +.% +  |
|      .+ +oB O ..|
|       o++*=E +o |
+----[SHA256]-----+

우선 Enter 키를 연타(3회 정도)(웃음)
Overwrite (y/n)? 부분에서 회신을 반환! !
※덧붙여 커맨드는 전부 커맨드 프롬프트로 실행하고 있습니다.
키를 복사하지 않으면 안되지만 명령 프롬프트는 복사 명령을 모르기 때문에 git-bash를 사용하여 얻습니다.
xxxxx@DESKTOP-xxxxx MINGW64 / $ clip < ~/.ssh/id_rsa.pub

>>> ※何も応答はありません

그런 다음 git.hub 설정에서 키를 입력하여 등록! (htps : // 기주 b. 코 m/세친 gs/케 ys)
$ ssh -T [email protected]

>>> Hi xxxxxxx! You've successfully authenticated, but GitHub does not provide shell access.

Hi! 오면 성공! !
$ git clone [email protected]:xxxxxx/port.git

>>> Cloning into 'port'...
    remote: Enumerating objects: 28, done.
    remote: Counting objects: 100% (28/28), done.
    remote: Compressing objects: 100% (25/25), done.
    remote: Total 28 (delta 3), reused 10 (delta 0), pack-reused 0
    Receiving objects: 100% (28/28), 7.45 KiB | 305.00 KiB/s, done.
    Resolving deltas: 100% (3/3), done.
$ make init

>>>    Illuminate\Database\QueryException  : SQLSTATE[HY000] [1045] Access denied for user 'phper'@'172.22.0.5' (using password: YES) (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')

  at /work/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
    665|         // If an exception occurs when attempting to run a query, we'll format the error
    666|         // message to include the bindings with SQL, which will make this exception a
    667|         // lot more helpful to the developer instead of just the database's errors.
    668|         catch (Exception $e) {
  > 669|             throw new QueryException(
    670|                 $query, $this->prepareBindings($bindings), $e
    671|             );
    672|         }
    673|

  Exception trace:

  1   PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'phper'@'172.22.0.5' (using password: YES)")
      /work/backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70

  2   PDO::__construct("mysql:host=db;port=3306;dbname=laravel_local", "phper", "secret", [])
      /work/backend/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70

  Please use the argument -v to see more details

오류가 발생했습니다. ? ? ? ? 라는 느낌(웃음)
조사해 보면 .env의 쓰는 방법이나 docker-compose.yml의 쓰는 방법이 다르다는 것이 산견되었지만,
어느 것을 해도 능숙하지 않고,,,.
하지만 포기하지 않고 살펴보면 htps : // 기주 b. 코 m / 도 c 케 r ぃ b 등 ry / mysql / 이스에 s / 51
「컨테이너를 삭제해, 재기동하면 고치자」라고 기재되어 있었으므로 해 보면
$ docker-compose rm -v

>>>   Going to remove port_db_1, port_web_1, port_app_1
    Are you sure? [yN] y
    Removing port_db_1  ... done                                                                                            
    Removing port_web_1 ... done                                                                                            
    Removing port_app_1 ... done 

우선 삭제
$ docker-compose up -d
>>>  WARNING: Found orphan containers (wordpress1) for this project. If you removed or renamed this service in your 
    compose file, you can run this command with the --remove-orphans flag to clean it up.
    Creating port_web_1 ... done                                                                                            
    Creating port_app_1 ... done                                                                                            
    Creating port_db_1  ... done

컨테이너를 다시 시작
그리고 확실히 일어난 것을 확인하고
오류로 멈춘 부분에서 다시 흘리면,,,,
$ docker-compose exec app php artisan migrate:fresh --seed
>>>  Dropped all tables successfully.
    Migration table created successfully.
    Migrating: 2014_10_12_000000_create_users_table
    Migrated:  2014_10_12_000000_create_users_table (0.23 seconds)
    Migrating: 2014_10_12_100000_create_password_resets_table
    Migrated:  2014_10_12_100000_create_password_resets_table (0.13 seconds)
    Migrating: 2019_08_19_000000_create_failed_jobs_table
    Migrated:  2019_08_19_000000_create_failed_jobs_table (0.16 seconds)
    Database seeding completed successfully.

할 수 있었다―! ! ! !
이런 단순한데도 상당히 빠졌습니다.
이것으로 구축 완료! !



무사히 일어났습니다! !

좋은 웹페이지 즐겨찾기