Docker+Laravel에서 MySQL을 사용할 수 있을 때까지의 메모

환경



OS: macOS Mojave 10.14.6
Docker: version 19.03.1

Laradock 다운로드



디렉토리를 만든 후 Laradock을 리포지토리에서 가져옵니다.

호스트
$ mkdir laradock_tutorial
$ cd laradock_tutorial
$ git clone https://github.com/Laradock/laradock.git
Cloning into 'laradock'...
remote: Enumerating objects: 9107, done.
remote: Total 9107 (delta 0), reused 0 (delta 0), pack-reused 9107
Receiving objects: 100% (9107/9107), 8.36 MiB | 4.38 MiB/s, done.
Resolving deltas: 100% (4891/4891), done.

MySQL 설정 변경



laradock 디렉토리로 이동하여 .env-example을 복사하여 이름 바꾸기
이번은 MySQL의 버전은 5.7, DB명은 test, 유저명은 user, 패스워드는 없음으로 한다.

호스트
$ cd laradock
$ cp env-example .env
$ vi .env

# 240行目~
MYSQL_VERSION=5.7
MYSQL_DATABASE=test
MYSQL_USER=user
MYSQL_PASSWORD=

컨테이너 초기화



(꽤 시간이 걸립니다)

호스트
$ docker-compose up -d nginx mysql workspace phpmyadmin

Laravel 애플리케이션 만들기



Workspace 컨테이너로 들어갑니다.
Laravel 5.7에서 sample이라는 응용 프로그램 만들기 (시간이 걸립니다)
도중에 Do not run Composer as root/super user! 라고 나오지만 신경쓰지 않는다

호스트
$ docker-compose exec workspace bash

workspace(docker)
$ cd laradock
$ composer create-project "laravel/laravel" sample --prefer-dist "5.7.*"
Application key set successfully.

데이터베이스 연결 설정



컨테이너 내에서 sample 어플리케이션이 생겼는지 확인한 후, sample 디렉토리로 이동

workspace(docker)
$ ls
laradock  sample
$ cd sample
$ vi .env

# 12行目~ ホストのDB設定と同じにすること。
DB_DATABASE=test
DB_USERNAME=user
DB_PASSWORD=

샘플 애플리케이션과 Laradock 연결



workspace(docker)
$ cd ../laradock
$ vi .env

# 7行目~
APP_CODE_PATH_HOST=../sample

# workspaceコンテナから抜ける
$ exit

DB 작성용 파일 편집



호스트
$ cd mysql/docker-entrypoint-initdb.d
$ cp createdb.sql.example createdb.sql
$ vi createdb.sql

# 新しく記入
CREATE DATABASE IF NOT EXISTS `test` COLLATE 'utf8_general_ci' ;
GRANT ALL ON `test`.* TO 'user'@'%' ;

DB 만들기와 사용자 연결



호스트
$ cd ../..
$ docker-compose exec mysql bash

mysql 컨테이너에 들어간다.

mysql(docker)
$ mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
Enter password: (rootと入力)

# 作成されたか確認
$ mysql -u user -p
Enter password: (そのままEnter)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               | ← testデータベースが作成されている。
+--------------------+

mysql> exit
Bye
$ exit

동작 확인



sample 디렉토리로 이동하여 마이그레이션할 수 있는지 확인.
이것으로 움직이면 MySQL을 사용할 수 있습니다.

호스트
$ cd ../sample/
$ php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table

마지막으로 서버가 시작되었는지 확인합니다.

호스트
$ php artisan serve

http://localhost:8000 로 이동하여 다음 페이지가 표시되면 성공합니다.

참고로 한 것



· htps : // 코 m / 야나기 코타 / ms / dcd7 16b7fb7353 086
· htps // chbぉg. s 이렇게 r. 이. jp/엔트리/2019/01/11/133508

좋은 웹페이지 즐겨찾기